仅在Rails中的视图中显示模型的非空属性

时间:2010-04-15 10:55:11

标签: ruby-on-rails

2 个答案:

答案 0 :(得分:3)

我会这样做:

# blog_helper.rb
show_non_blank_field(label, value)
  "<p>#{label}: #{h value}</p>" if !value.blank?
end

然后在视图中:

<%= show_non_blank_field "Body", blog.body %>

依旧......

当然,您可以使用较短的帮助名称。

如果您想以if-else方式执行此操作,请尝试以下操作:

<% if !blog.title.blank? -%>
 <p>Title: <%=h blog.title %></p>
<% end %>

<% if !blog.body.blank? %>
 <p>Body: <%=h blog.body %></p>
<% end %>

<p>Comments: <%=h blog.comments %></p>

答案 1 :(得分:0)

show_field_unless_empty(blog, :body, 'Body')

然后,在blog_helper.rb

def show_field_unless_empty(model, field, title)
  render :partial => 'field', :locals => {:value => model.send(field), :title => title} if model.send(field)
end

然后,在_field.html.erb

<p>
<%= title %>: 
<%= value %>
</p>

这对我来说似乎相当干净。