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" %>
答案 0 :(得分:2)
<%= e.categories_id.nil? ? "Don't have value" : "Has value" %>
甚至更好:
<%= e.categories_id ? "Has value" : "Don't have value" %>
答案 1 :(得分:0)
<%= e.categories_id || "There's no categories_id" %>
但严重的是,这个问题太多了。首先,你应该知道足够多的Ruby知道它使用nil
而不是NULL
。名为categories_id
的外键建议您使用名为Categories
的模型。型号名称应该是单数。
答案 2 :(得分:0)
<% 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运算符更具可读性? :
答案 3 :(得分:0)
如果您只想显示“没有价值”,则可以执行此操作:
<%= e.categories_id || "Don't have value" %>
您可以做的是设置值:
<% e.categories_id ||= "Don't have value" %>
<%= e.categories_id %>
如果要更改数据的值,则不应在视图中执行此操作。您应该在控制器中进行所有数据操作,甚至更好,模型(fat model, skinny controller)。
您还有另一个问题:在Ruby null
中称为nil
。所以对nil的测试看起来像这样:
if whatever == nil
#Do anything
end
Ruby的优点是nil
在语句中被视为false,因此您可以省略== nil
以获得:
if whatever
#Do anything
end