【问题标题】:show a text instead of NULL value显示文本而不是 NULL 值
【发布时间】:2013-08-22 15:25:07
【问题描述】:

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

【问题讨论】:

  • 你试过nil还是empty?那么如果 e.categories_id.empty?

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2


【解决方案1】:
<%= e.categories_id.nil? ? "Don't have value" : "Has value" %>

甚至更好:

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

【讨论】:

  • 我只想说.. LOLzz :)
【解决方案2】:
<%= e.categories_id || "There's no categories_id" %>

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

【讨论】:

    【解决方案3】:
    <% 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 比三元运算符更具可读性? :

    【讨论】:

      【解决方案4】:

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

      <%= 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 在语句中被认为是错误的,因此您可以省略 == nil 从而得到:

      if whatever
         #Do anything
      end
      

      【讨论】:

        猜你喜欢
        • 2011-12-29
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-27
        • 1970-01-01
        相关资源
        最近更新 更多