在問你之前,我無法控制在我正在使用的數據庫中創建任何視圖或連接表。ActiveRecord加入非默認值的嵌套關聯
我在ActiveRecord的文檔,你可以做多層次的加盟發現:
12.2.4 Joining Nested Associations (Multiple Level)
Category.joins(articles: [{ comments: :guest }, :tags])
This produces:
SELECT categories.* FROM categories
INNER JOIN articles ON articles.category_id = categories.id
INNER JOIN comments ON comments.article_id = articles.id
INNER JOIN guests ON guests.comment_id = comments.id
INNER JOIN tags ON tags.article_id = articles.id
在那裏你可以指定要加入什麼就
Client.joins('LEFT OUTER JOIN addresses ON addresses.client_id = clients.id')
我想要做的是什麼,結合了2
Client.joins('Inner Join addresses on addresses.client_name = client.name').joins('Inner Join state on state.abreviation = addresses.state_abreviation)
或在原始SQL
Select client.* from client
Inner Join addresses on client.client_name = addresses.client_name
Inner Join state on addresses.state_abreviation = state.abreviation
,如果我能做到這一點使用的關聯,而不是加入,這將是偉大的!:
class Category < ActiveRecord::Base
has_many :articles
end
class Article < ActiveRecord::Base
belongs_to :category
has_many :comments
has_many :tags
end
class Comment < ActiveRecord::Base
belongs_to :article
has_one :guest
end
class Guest < ActiveRecord::Base
belongs_to :comment
end
class Tag < ActiveRecord::Base
belongs_to :article
end
看起來有'地址'表和相關的模型,你在這裏省略。那是對的嗎? – San
@San我包含了我正在尋找的內容「我想要做的就是結合2」 –
您描述了具有關聯的活動記錄模型,與您在第二個連接請求中編寫的表格和模型不同。這是令人困惑的,並且不符合活動記錄模式 – edikgat