我想知道我是否可以将default_scope
放在if区块内。我有一个用户模型has_one
配置文件。这是我在我的用户模型的代码:default_scope可以在if块内吗?
Class User
default_scope joins(:profile).order('profiles.updated_at DESC').readonly(false)
end
的问题是,当数据库没有创建的配置它提供了一个错误,因为配置文件是零。我可以使用一个if块,我可以说:
unless self.profile.nil?
default_scope joins(:profile).order('profiles.updated_at DESC').readonly(false)
end
这种方法是否有其他替代方法?
这个问题不在'default_scope'中,它在你的代码中的其他地方。即使你在db中没有任何配置文件,也不应该导致任何错误。 – jvnill 2013-03-20 15:49:40
作用域是在类级别 – apneadiving 2013-03-20 15:51:44
好的,不管是否有任何配置文件在数据库或不。如果我在我的用户模型中有上述代码,它会与Devise发生冲突。具体设计可确定。确认后,它不会直接进入用户显示页面。我想我提供了足够的信息。但任何人遇到这个问题? – pratski 2013-03-20 16:28:40