2013-09-11 3 views
0

У меня есть несколько кодов, которые имеют разные значения, например. «отменено», «подтверждено» и т. д., и я сохраняю код в базе данных. Я хочу использовать словоформы в разных местах вокруг моего приложения Rails и хотел бы знать, что люди рекомендуют для этого, чтобы как можно эффективнее.Rails Case или Helper

Я рассмотрел аргумент case в своих взглядах, но он будет повторен, и я тоже хочу избежать логики в своих взглядах. Поэтому я подумал, может быть, помощником, но должно ли это быть заявлением в рамках помощника?

Это то, что я до сих пор в моем соответствующем хелперов файле:

def status_word(status) 
    case status 
    when 1 
    puts "Cancelled" 
    when 2 
    puts "Confirmed" 
    end 
end 

и я называю это, на мой взгляд выглядит следующим образом:

<%= status_word(1) %> 

но ничего не выводится на мой взгляд. Могу ли я использовать «положить» здесь или есть лучший способ?

ответ

0

Неправильно используется puts. Он предназначен для записи на стандартный вывод, а не для возврата значения из метода. Вы хотите return, или просто дайте значение опадают в конце метода:

def status_word(status) 
    case status 
    when 1 then "Cancelled" 
    when 2 then "Confirmed" 
    end 
end 

С puts перед каждой строкой, вы на самом деле возвращения возвращаемого значения puts, который nil:

irb(main):001:0> puts "what" 
what 
=> nil 
+0

Тах очень много - извините за новые для Rails, так что все еще хватаешься за это ха-ха - я буду отмечать как можно лучше, когда это позволяет мне. ура – tommyd456