Sql rails没有这样的列错误
我有以下应用程序。一部电影有很多评论,一个影迷有很多评论。 当我尝试将评论与电影相关联时,会出现以下错误Sql rails没有这样的列错误,sql,ruby-on-rails,migration,Sql,Ruby On Rails,Migration,我有以下应用程序。一部电影有很多评论,一个影迷有很多评论。 当我尝试将评论与电影相关联时,会出现以下错误 Review Load (0.1ms) SELECT "reviews".* FROM "reviews" WHERE "reviews"."movie_id" = 5 SQLite3::SQLException: no such column: reviews.movie_id: SELECT "reviews".* FROM "reviews" WHERE "reviews"
Review Load (0.1ms) SELECT "reviews".* FROM "reviews" WHERE "reviews"."movie_id" = 5
SQLite3::SQLException: no such column: reviews.movie_id: SELECT "reviews".* FROM "reviews" WHERE "reviews"."movie_id" = 5
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: reviews.movie_id: SELECT "reviews".* FROM "reviews" WHERE "reviews"."movie_id" = 5
在使用SQLGUI编辑器之后,我发现应该使用正确的查询
SELECT "reviews".* FROM "reviews" WHERE "movie_id" = 5
review.rb
class Review < ActiveRecord::Base
belongs_to :movie
belongs_to :moviegoer
attr_protected :moviegoer_id
end
我做错了什么?为什么rails查询“评论”“电影id”而不是“电影id”?迁移中的列名错误。rails的惯例是外键是单键。如果它们不是,那么您需要通过关联上的选项散列告诉rails外键是什么 要么回滚迁移,修复列名(moviewers\u id也错误),然后再次迁移,要么告诉rails外键
Class Review < ActiveRecord::Base
belongs_to :movie, :foreign_key => 'movies_id'
belongs_to :moviegoer, :foreign_key => 'moviegoers_id'
end
Class Review“movies\u id”
属于:影迷,:外键=>“影迷id”
结束
同样的情况也会发生在两种车型的许多方面。正如您在评论表中看到的,没有“电影id”列,而是有一个“电影id”。
Class Review < ActiveRecord::Base
belongs_to :movie, :foreign_key => 'movies_id'
belongs_to :moviegoer, :foreign_key => 'moviegoers_id'
end