Rails - 将值传递给循环

时间:2014-08-27 15:31:54

标签: ruby-on-rails ruby-on-rails-4

具体来说,在索引页面上,您可能有

@users.each do |user|
 render 'layouts/shortprofile'
end

其中,简介包含来自用户和其他相关模型的数据。

部分尝试从用户模型中的索引方法读取,但该方法中没有为单个用户定义变量。感觉就像|用户| block var应该读入partial,但似乎没有。

例如,在部分我可能希望有类似的东西 -

user.blogs[1..3].each do |blog|
  blog.title
  blog.created_at
  .....

...但我不知道如何将用户值转换为部分。

我希望将它保留为部分cos,它会在几种情况下显示,我想要干。

2 个答案:

答案 0 :(得分:3)

使用局部变量将其传递给partial,并确保明确指定partial:

e.g /

@users.each do |user|
 render partial: 'layouts/shortprofile', locals: { user: user }
end

此处有更多信息:http://guides.rubyonrails.org/layouts_and_rendering.html#passing-local-variables

答案 1 :(得分:0)

您可以将部分更改为“_user.html.erb”并将其移至带有索引视图的“views / users”文件夹,并将@users.each块替换为:

<%= render @users %>

...应该成功地将每个用户对象传递给部分中的user变量。