0

3.5 и хотите, чтобы показать текст вместо значения NULL в моем 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

есть вы попробовали ноль или пуст? поэтому, если 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 использует для проверки обоих .пути? и .nil? Плюс, используя if if, более читаемый, чем оператор 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 

Что приятно о Рубине, что nil считается ложным в заявлении, так что вы можете опустить == nil так что вы получите:

if whatever 
    #Do anything 
end 
Смежные вопросы