【发布时间】:2015-10-23 00:42:00
【问题描述】:
在我的 Rails 4 应用程序中,有一个 Post 模型,具有 :copy 和 :short_copy 属性。
在 Posts#Show 视图中,如果 :short_copy 由用户定义,我想显示它,否则 :copy。
所以,我实现了以下代码:
<% if @post.short_copy %>
<%= @post.short_copy %>
<% else %>
<%= @post.copy %>
<% end %>
问题:当:short_copy 被定义时,它会显示出来,但是,当它没有被定义时(并且:copy 是定义的),:copy 不会显示出来.
这段代码有问题吗?
【问题讨论】:
-
@post.short_copy 是否可能等于空字符串?
-
是的,这是可能的,你是对的。然后,如果
@post.short_copy不是 nil,那么我们显示它,什么也没有出现。那么,我需要像unless @post.short_copy.nil? || @post.short_copy.empty?这样的事情来测试它吗? -
是的。确切地。我会做
@post.short_copy.nil?,但是你需要确保你的用户输入正确保存或者是nil。 :)
标签: ruby-on-rails ruby ruby-on-rails-4 if-statement view