如果模型用戶HAS_ONE檔案,有一個簡單的方法找到沒有自定義查詢(例如,不User.where('profile_id IS NULL')
),或在應用程序處理它誰沒有配置文件的所有用戶?Rails的:尋找模型缺少HAS_ONE記錄
由於用戶和配置文件之間的關聯是Rails已知的,我不想重述它。我想保持這種乾爽。模型之間的實際連接比這個簡單的例子(使用鍵和類名)更復雜,並且將來可能會發生變化。
如果模型用戶HAS_ONE檔案,有一個簡單的方法找到沒有自定義查詢(例如,不User.where('profile_id IS NULL')
),或在應用程序處理它誰沒有配置文件的所有用戶?Rails的:尋找模型缺少HAS_ONE記錄
由於用戶和配置文件之間的關聯是Rails已知的,我不想重述它。我想保持這種乾爽。模型之間的實際連接比這個簡單的例子(使用鍵和類名)更復雜,並且將來可能會發生變化。
由於@tadman & @antonk已經說了,你可能想使用scope
:
scope :without_profile, where(profile_id: nil)
編輯: 要回答@大衛毛的問題:你可以通過調用User.without_profile
使用它,返回AR協會的所有用戶的nil
:profile_id
。
@DriverDan:那麼我真的不確定你在問什麼。問更多的細節問題,我們可以嘗試回答它!
以及如何使用它? –
我接受這個,因爲這是我的簡單示例的合理解決方案。 但是,當兩個模型之間的關係更復雜時,例如使用primary_key,我不認爲它是正確的解決方案。這將需要在正好與我想要避免的範圍內重新加入JOIN。 – DriverDan
查詢'User'模型的表而不構建Rails本身不提供的查詢的方法?這不是很清楚。 – deefour
爲了便於閱讀,無論您進行的自定義查詢都可以包含到「作用域」中。 – tadman
'scope:without_profile,where(profile_id:nil)' – melekes