我正在关注Ruby on Rails教程,并在尝试将变量传递给partials时遇到了问题.
我的_user部分内容如下
<li>
<%= gravatar_for user, size: 52 %>
<%= link_to user.name, user %>
</li>
Run Code Online (Sandbox Code Playgroud)
我想传递一个数字的大小值.我没有任何运气我尝试如下.
<%= render @users, :locals => {:size => 30} %>
Run Code Online (Sandbox Code Playgroud)
提前致谢!
Kar*_*bol 172
来自PartialRender上的Rails api :
渲染默认情况
如果您不打算使用任何选项(如集合或布局),您还可以使用渲染的简写默认值来渲染部分.
例子:
# Instead of <%= render partial: "account" %>
<%= render "account" %>
# Instead of <%= render partial: "account", locals: { account: @buyer } %>
<%= render "account", account: @buyer %>
# @account.to_partial_path returns 'accounts/account', so it can be used to replace:
# <%= render partial: "accounts/account", locals: { account: @account} %>
<%= render @account %>
# @posts is an array of Post instances, so every post record returns 'posts/post' on `to_partial_path`,
# that's why we can replace:
# <%= render partial: "posts/post", collection: @posts %>
<%= render @posts %>
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用传递局部变量size进行渲染,如下所示:
<%= render @users, size: 50 %>
Run Code Online (Sandbox Code Playgroud)
然后在_user.html.erb部分中使用它:
<li>
<%= gravatar_for user, size: size %>
<%= link_to user.name, user %>
</li>
Run Code Online (Sandbox Code Playgroud)
注意size: size相当于:size => size.
jam*_*esc 152
如果要传递本地,则需要完整的渲染部分语法
<%= render @users, :locals => {:size => 30} %>
Run Code Online (Sandbox Code Playgroud)
变
<%= render :partial => 'users', :collection => @users, :locals => {:size => 30} %>
Run Code Online (Sandbox Code Playgroud)
或者使用新的哈希语法
<%= render partial: 'users', collection: @users, locals: {size: 30} %>
Run Code Online (Sandbox Code Playgroud)
我认为这更具可读性
要么
render partial: 'user', locals: {size: 30}
Run Code Online (Sandbox Code Playgroud)
要么
render 'user', size: 30
Run Code Online (Sandbox Code Playgroud)
要使用locals,您需要partial。没有partial参数,您可以直接列出变量(不在内locals)
locals在 Rails 4.2+ 中使用在 Rails 4.2 中,我不得不移除该locals部分并size: 30改为使用。否则,它不会正确传递局部变量。
例如,使用这个:
<%= render @users, size: 30 %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110734 次 |
| 最近记录: |