如何在Ruby On Rails中使用内部联接

sur*_*h.g 4 ruby-on-rails ruby-on-rails-3

我正在铁轨上工作.

我的需要是,

@accountUrl = Account.find_by_id(current_account_id)

@details = Detail.find_by_acc_id(@accountUrl.id)
Run Code Online (Sandbox Code Playgroud)

如何从上面的例子中编写内连接查询

可以任何一个.

rew*_*ten 16

在这个简单的例子中,Rails不使用连接,它加入"in code":

Account.includes(:details).where(:id => current_account_id).first
Run Code Online (Sandbox Code Playgroud)

它将进行两个单独的查询.

如果您需要选择条件,则必须"手动"(或通过范围)加入

Account.joins(:details).where("details.name" => selected_detail).first
Run Code Online (Sandbox Code Playgroud)

这将使INNER JOIN成为仅返回满足条件的帐户.