0

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" %>
4

4 回答 4

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

甚至更好:

<%= e.categories_id ? "Has value" : "Don't have value" %>
于 2013-08-22T15:26:50.050 回答
0
<%= e.categories_id || "There's no categories_id" %>

但说真的,这个问题有很多不好的地方。首先,您应该了解足够多的 Ruby 以知道它使用nilnot NULL。一个名为的外键categories_id建议您有一个名为Categories. 模型名称应该是单数。

于 2013-08-22T15:47:05.357 回答
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 比三元运算符更具可读性?:

于 2013-08-22T15:49:10.600 回答
0

如果您只想显示“没有价值”,则可以这样做:

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

您可以做的是设置值:

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

如果要更改数据的值,则不应在视图中执行此操作。您应该在控制器甚至更好的模型(胖模型,瘦控制器)中进行所有数据操作。

您还有另一个问题:在 Rubynull中称为nil. 所以对 nil 的测试看起来像这样:

if whatever == nil
   #Do anything
end

Ruby 的优点在于它nil在语句中被认为是错误的,所以你可以省略 ,== nil所以你得到:

if whatever
   #Do anything
end
于 2013-08-27T06:28:36.870 回答