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查询“包含”不具有此类约束?包含作为单独的查询实现。不需要联接。