红宝石单线为此可能吗?

时间:2010-06-04 02:33:46

标签: ruby named-scope activemodel

第二行和第三行是否有机会组合成一行,希望能保存一个有价值的行?

def self.date_format
  record = find_by_key('strftime')
  record ? record.value : "%Y-%b-%d'
end

Config模型中的上述函数尝试通过键获取数据库记录,如果在数据库中找不到则返回默认值。

如果可以在命名范围内编写,那就更好了。感谢

4 个答案:

答案 0 :(得分:4)

按要求。

还没有人提到try,这对于这种情况非常适合:

value = find_by_key('strftime').try(:value) || "%Y-%b-%d"

答案 1 :(得分:1)

您可以使用:

(find_by_key('strftime').value rescue nil) || "%Y-%b-%d"

虽然使用例外效率不高。

答案 2 :(得分:0)

确实

value = find_by_key('strftime') || "%Y-%b-%d"

为你工作?

答案 3 :(得分:0)

您是否需要分配“值”变量?如果不是......

def self.date_format
  find_by_key('strftime') || "%Y-%b-%d"
end