Ruby on rails rails连接问题

Ruby on rails rails连接问题,ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,我的模型只是一个例证 Movie has_many :usermovies Usermovie belongs_to :user belongs_to :movie User has_many :usermovies 现在进行比较 错误: Mysql2::Error: Unknown table 'movies': SELECT `movies`.* FROM `movies` usermovies WHERE `usermovies`.`user_id` IN (

我的模型只是一个例证

Movie   
has_many :usermovies

Usermovie
  belongs_to :user   
  belongs_to :movie

User
  has_many :usermovies
现在进行比较

错误:

Mysql2::Error: Unknown table 'movies': SELECT `movies`.* FROM `movies` usermovies WHERE `usermovies`.`user_id` IN (3, 1)

Extracted source (around line #9):

6:   <td><%= "#{@compare_with.name}'s rating" %> </td>
7: </thead>
8: <tbody>
9:   <% @movies.each do |movie| %>
10:   <td></td>
11:   <td></td>
12:   <% end %>
但是当我使用:includes而不是:joins时,它的效果非常好

知道代码有什么问题吗?

问题出在.joinsusermovies中

您必须传递符号,例如:

joins(:usermovies)
或者,如果传递字符串:

joins("JOIN usermovies")
这是因为当您传递字符串时,Rails希望您也指定连接类型。如果要将默认内部联接更改为左外部联接或右外部联接,则此功能特别有用。但是,由于Rails不知道是否要更改联接类型,因此如果传递字符串,即使不想更改联接类型,也必须在字符串中显式包含联接。

问题出在.joinsusermovies中

您必须传递符号,例如:

joins(:usermovies)
或者,如果传递字符串:

joins("JOIN usermovies")
这是因为当您传递字符串时,Rails希望您也指定连接类型。如果要将默认内部联接更改为左外部联接或右外部联接,则此功能特别有用。但是,由于Rails不知道是否要更改联接类型,因此如果传递字符串,即使不想更改联接类型,也必须在字符串中显式包含联接。

1查询“包含”不具有此类约束吗?包含作为单独的查询实现。不需要联接。1查询“包含”不具有此类约束?包含作为单独的查询实现。不需要联接。