我工作的Rails项目时遇到用下面加入了一些问题:Rails的连接表问题
@page = Page.find(params[:id], :joins => "LEFT JOIN page_translations ON page_translations.page_id = pages.id")
出于某种原因,它只能拉回从页表的一切。
这里是我的第
class Page < ActiveRecord::Base
has_many :users_pages
has_many :users, :through => :users_pages
has_many :page_translations
has_many :categories
accepts_nested_attributes_for :page_translations
accepts_nested_attributes_for :categories
end
模型这里是我的PageTranslation
class PageTranslation < ActiveRecord::Base
belongs_to :pages
end
预先感谢所有帮助典范!
编辑(@thenduks)
日志运行两个单独的查询:
Page Load (0.5ms) SELECT `pages`.* FROM `pages` WHERE (`pages`.`id` = 1) LIMIT 1
PageTranslation Load (0.5ms) SELECT `page_translations`.* FROM `page_translations` WHERE (`page_translations`.page_id = 1)
这里是我的控制器是什么样子:
@page = Page.find(params[:id], :include => :page_translations)
你在期待什么?当你做page.page_translations时你会得到什么? – 2010-10-09 00:01:20
伙计。我只是想通了!我会在下面更新我的答案... – John 2010-11-01 04:01:54
下面是一个很好的答案相同的问题:http://stackoverflow.com/questions/27523326/when-joining-table-rails-anyway-makes-additional-request-when-accessing - 字段 – 2014-12-17 11:07:54