显示文本,而不是NULL值

问题描述 投票:0回答:4

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" %>
ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
4个回答
2
投票
<%= e.categories_id.nil? ? "Don't have value" : "Has value" %>

甚至更好:

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

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

但严重的是,有这么多这是很糟糕这个问题。首先,你应该知道足够的红宝石知道它使用nilNULL。所谓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)。

有你有一个其他问题:在Ruby null被称为nil。因此,对于无测试是这样的:

if whatever == nil
   #Do anything
end

什么是关于Ruby好的是nil被认为是虚假的陈述,这样你就可以省略== nil等你拿:

if whatever
   #Do anything
end
© www.soinside.com 2019 - 2024. All rights reserved.