3.5,并希望以显示我的CATEGORY_ID领域的文本,而不是NULL值
<% if e.categories_id == "NULL" %>
<%= e.categories_id ="Don't have value" %>
<% else %>
<%= e.categories_id ="Has value" %>
<% end %>
有人能帮助我吗?
我努力了
<% if e.categories_id = NULL %>
<% if e.categories_id == NULL %>
<% if e.categories_id = "NULL" %>
<% if e.categories_id == "NULL" %>
<%= e.categories_id.nil? ? "Don't have value" : "Has value" %>
甚至更好:
<%= e.categories_id ? "Has value" : "Don't have value" %>
<%= e.categories_id || "There's no categories_id" %>
但严重的是,有这么多这是很糟糕这个问题。首先,你应该知道足够的红宝石知道它使用nil
不NULL
。所谓categories_id
外键建议你有一个名为Categories
模型。型号名称应为单数。
<% if e.categories_id.blank? %>
<p>"Don't have value" </p> (or whatever you want displayed)
<% else %>
<%= e.categories_id %> (should display the value of e.categories_id)
<% end %>
我喜欢.blank? Rails所使用的方法来检查这两个.empty?和.nil?加上使用的if else比Terinary操作更具可读性? :
你可以这样做,如果你只是想显示“没有价值”,如果是这样的话:
<%= e.categories_id || "Don't have value" %>
你可以做的是设置的值:
<% e.categories_id ||= "Don't have value" %>
<%= e.categories_id %>
如果要更改数据的价值,你不应该做的是,在视图。你应该做的所有控制器的数据操纵,甚至更好,模型(fat model, skinny controller)。
有你有一个其他问题:在Ruby null
被称为nil
。因此,对于无测试是这样的:
if whatever == nil
#Do anything
end
什么是关于Ruby好的是nil
被认为是虚假的陈述,这样你就可以省略== nil
等你拿:
if whatever
#Do anything
end