0

3.5和要显示在我的CATEGORY_ID领域的文本,而不是NULL值显示文本,而不是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

有你试过零或空?所以如果e.categories_id.empty? – kobaltz

+0

感谢它的工作! –

回答

1
<%= e.categories_id.nil? ? "Don't have value" : "Has value" %> 

甚至更​​好:

<%= e.categories_id ? "Has value" : "Don't have value" %> 
+0

我只会说.. LOLzz :) –

0
<%= e.categories_id || "There's no categories_id" %> 

但严重的是,有这么多这是很糟糕这个问题。首先,你应该知道足够多的Ruby知道它使用nil而不是NULL。一个名为categories_id的外键建议您有一个名为Categories的模型。型号名称应该是单数。

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运算符更具可读性? :

0

你可以做到这一点,如果你只是想显示“没有价值”,如果是这样的话:

<%= e.categories_id || "Don't have value" %> 

你可以做什么要设置的值:

<% e.categories_id ||= "Don't have value" %> 
<%= e.categories_id %> 

如果你想改变数据的值,你不应该在视图中这样做。您应该在控制器中执行所有数据操作,或者更好,模型(fat model, skinny controller)。

还有一个其他问题:红宝石null被称为nil。因此,对于无测试是这样的:

if whatever == nil 
    #Do anything 
end 

什么是关于Ruby好的是nil被视为在一份声明中假的,所以你可以省略== nil等你拿:

if whatever 
    #Do anything 
end