必要时创建Rails模型的子项

时间:2013-08-16 13:20:46

标签: ruby-on-rails

我有一个有很多Book模型的实时网站。我最近添加了一个属于每本书的设置模型。

现在当我编写代码来使用book.settings方法时,如何避免检查'book.settings.nil?'或者做'book.settings ||每次通话都要预订.create_settings?设置模型有一些我可以使用的默认值。

2 个答案:

答案 0 :(得分:1)

更新:早期的回答建议使用after commit hook将默认设置添加到书籍中。根据评论,这不是问题。我删除了之前的答案,以避免混淆读者。

您可以使用将在生产服务器上运行一次的rake任务来修复没有默认设置的图书。

答案 1 :(得分:0)

为什么不将这些条件放在自定义方法上,并调用它而不是调用settings,如下所示:

def default_settings
  self.settings || self.create_settings
end

然后你这样称呼它:

@book.default_settings

您也可以在nil?内查看default_settings