我有以下三种模式的所有项目:Rails的发现belongs_to的另一个模型
型号/ user.rb
class User < ActiveRecord::Base
has_many :order_movies
has_many :movies, through: :order_movies
end
型号/ movie.rb
class Movie < ActiveRecord::Base
has_many :order_movies
has_many :user, through: :order_movies
end
型号/ order_movies .rb
class OrderMovie < ActiveRecord::Base
belongs_to :user
belongs_to :movie
end
现在我想返回所有从一个特定用户订购的电影。
我试过如下:
def myMovies
@user = User.find(session[:user_id])
@movies = OrderMovie.where(:user_id => @user.id).movie
end
但我得到这个错误:
undefined method `movie' for #<OrderMovie::ActiveRecord_Relation:0x00000007c38fc8>
什么是我在这种情况下,失败?
谢谢。
您正在编写不必要的代码。 ActiveRecord协会照顾这一点。看到我上面的解决方案 – danielrsmith
不仅可以编写,而且可以对数据库进行不必要的查询。而不是一个单一的查询,你正在做两个。 – Leito