从Association获取默认字符串(如果它不存在)

时间:2014-04-12 07:11:07

标签: ruby-on-rails

如果关联不存在,我需要显示默认字符串。我现在这样做:

  %td
    - if m.winner.nil?
      = 'No One'
    - else
      = m.winner.country
  %td
    - if m.mom.nil?
      = 'No One'
    - else
      = m.mom.name

有没有一种巧妙的方法可以做到这一点?

2 个答案:

答案 0 :(得分:4)

有几种方法可以做到这一点。我最喜欢的是使用委托。

选项1)添加到您的m模型

delegate :name, to: :mom, allow_nil: true

然后

m.mom.name || "No One"   

选项2)如果你感到懒惰,也可以使用它

m.mom.name rescue  "No One"

答案 1 :(得分:3)

请尝试使用以下代码。

%td    
 = m.winner.try(:country) || 'No One'
%td
 = m.mom.try(:name) || 'No One'