2015-06-04 96 views
1

我在我的案例模型如下關聯關係:where子句使用嵌套屬性?

belongs_to :title, 
    -> { where lang: I18n.locale }, 
    class_name: "Translation", 
    foreign_key: 'title_tid', 
    primary_key: 'id' 
has_many :titles, 
    class_name: "Translation", 
    foreign_key: 'id', 
    primary_key: 'title_tid' 

belongs_to :desc, 
    -> { where lang: I18n.locale }, 
    class_name: "Translation", 
    foreign_key: 'desc_tid', 
    primary_key: 'id' 
has_many :descriptions, 
    class_name: "Translation", 
    foreign_key: 'id', 
    primary_key: 'desc_tid' 

所以拿到冠軍,我會做:

my_case.title.text 

我需要找到具有特定標題的特定情況下:

Case.where(title.text: case_title) 

但這不起作用。有沒有辦法做一個嵌套屬性的地方?

回答

1

您將需要join到該表。該屬性不是嵌套的;它是belongs_to關係的一部分。

Case.joins(:title).where(translations: {text: case_title})