ホームページ  >  記事  >  php教程  >  Rails render パラメータ変数の部分的な説明

Rails render パラメータ変数の部分的な説明

高洛峰
高洛峰オリジナル
2016-12-13 11:54:121559ブラウズ

1. デフォルトのパラメータ

Ruby コード

<%= render :partial => "account" %>


デフォルトでは、ローカル変数 @account があり、これは変数アカウント

2 にレンダリングされる部分に渡されます。
locals が渡されます グループハッシュパラメータのハッシュ値はローカル変数であり、ハッシュキーは部分的な

Ruby コードの変数です

<%= render :partial => "account", :locals => { :account => @buyer } %>  
  
<% for ad in @advertisements %>  
  <%= render :partial => "ad", :locals => { :ad => ad } %>  
<% end %>


上の 2 つのレンダリングは、
ローカル変数 @buyer を渡します_account.erb の account というパラメータ
ローカル変数 ad を _ad.erb に渡し、それを ad とします

3

1 つのデフォルトパラメータによると、次の 2 つは同じです

Ruby コード

<%= render :partial => "contract", :locals => { :contract  => @contract } %>  
  
<%= render :partial => "contract" %>




4. を渡した後に変更するには

を使用しますが、パーシャル内の変数名は次のようになり、レンダリング方法は同じです。

Rubyコード

<%= render :partial => "contract", :as => :agreement  
  
<%= render :partial => "contract", :locals => { :agreement => @contract }


@contractを_contract.erbに渡します。partialの変数はagreementと呼ばれます

5 オブジェクト

objectを使用する最も簡単な方法は、変数の元の名前をpartialに渡すことです。
そこで、はっきりと思い出せないときは、object を使ってさらに記述してください

次のように:

Ruby コード

<%= render :partial => "account", :object => @buyer %>  
  
<% for ad in @advertisements %>  
  <%= render :partial => "ad", :object => ad %>  
<% end %>


_account.erb または @ の部分の変数名に @buyer を渡します。バイヤー
広告を渡す _ad.erb の部分の変数名は広告のまま

6 オブジェクトとそのまま結合

Ruby コード

<%= render :partial => "contract", :object => @contract, :as => :contract %>  
  
<%= render :partial => "contract" %>



7 コレクション

Ruby コード

<%= render :partial => "ad", :collection => @advertisements %>



@広告は配列であり、部分的です。 _ad.erb には、@advertisements のメンバーである広告変数があります。つまり、_ad.erb はループを記述する必要がなく、単に広告を表示するだけです。

Rubyコード

<%= render :partial => "ad", :collection => @advertisements, :spacer_template => "ad_divider" %>


上記と同じ、_ad.erbを表示するループ _ad_divider.erbを@advertisements.size倍表示する ここでpartial_ad_counterは、どの広告

8 デフォルト

が変数に依存するかを示すデフォルトのカウンタです部分的になりたい レコードのグループは依然としてレコードであり、ローカルとコレクションは合意に従って使用されます

ルビ コード

#@account是一条记录  
# <%= render :partial => "accounts/account", :locals => { :account => @account} %>  
<%= render :partial => @account %>  
  
# @posts是一组记录  
# <%= render :partial => "posts/post", :collection => @posts %>  
<%= render :partial => @posts %>


これは非常に人間的な合意ですが、時々私たちは忘れてしまいます

9 いくつかの美しいもの略語

ルビコード

#<%= render :partial => "account" %>可用下面代替  
<%= render "account" %>  
  
#<%= render :partial => "account", :locals => { :account => @buyer } %>可用下面代替  
<%= render "account", :account => @buyer %>  
  
# @account是一条记录  
# <%= render :partial => "accounts/account", :locals => { :account => @account } %>可用下面代替  
<%= render(@account) %>  
  
# @posts是一组记录  
# <%= render :partial => "posts/post", :collection => @posts %>可用下面代替  
<%= render(@posts) %>



10レイアウト

ルビコード

<%# app/views/users/index.html.erb &>  
Here&#39;s the administrator:  
<%= render :partial => "user", :layout => "administrator", :locals => { :user => administrator } %>  
  
Here&#39;s the editor:  
<%= render :partial => "user", :layout => "editor", :locals => { :user => editor } %>  
  
<%# app/views/users/_user.html.erb &>  
Name: <%= user.name %>  
  
<%# app/views/users/_administrator.html.erb &>  
<div id="administrator">  
  Budget: $<%= user.budget %>  
  <%= yield %>  
</div>  
  
<%# app/views/users/_editor.html.erb &>  
<div id="editor">  
  Deadline: <%= user.deadline %>  
  <%= yield %>  
</div>



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。