答案 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>
这对我来说似乎相当干净。