我想知道我是否可以將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