假设我有一个像这样的对象
@contacts = Contact.first(5)
联系表有4列,name,id,created_at,updated_at
现在我想为每个对象添加一个标志,用于名称和联系人ID,如
@contacts.each do |contact|
contact.add(name_flag) = true if {my condition here}
end
并且在视图中我想根据标志
输出联系人 <% @contacts.each do |contact| %>
<%= contact.['name'] if contact.[name_flag'] %>
<% end %>
答案 0 :(得分:0)
在控制器中: -
con = Contact.first(5)
@contacts = []
con.each do |contact|
if my_condition_here
contact['name_flag'] = true
end
@contacts << contact
end
在视图中: -
<% @contacts.each do |contact| %>
<%= contact.name if contact['name_flag'] %>
<% end %>
答案 1 :(得分:0)
如果您的条件不是太复杂,那么将它放在您的视图中就没问题了:
<% @contacts.each do |contact| %>
<%= contact.name if {your condition here} %>
<% end %>
编辑:
如果要将此条件移动到模型中,只需在Contact模型上定义一个方法:
def name_flag
{your condition here}
end
然后你可以在你的观点中调用它:
<% @contacts.each do |contact| %>
<%= contact.name if contact.name_flag %>
<% end %>