我无法修改RoR中的现有关系。 Db架构是用户(id),书籍(id,标题),评级(user_id,book_id,评级) 型号
class User < ActiveRecord::Base
has_many :ratings
end
class Rating < ActiveRecord::Base
belongs_to :user
belongs_to :book
end
class Book < ActiveRecord::Base
has_many :ratings
end
使用book.ratings.build创建新评级(:user_id =&gt; 1,:rating =&gt; 5); book.save工作正常,但我不能用
修改现有的评级r = book.ratings.where(:user_id => 1).first
r.rating = 5
book.save不保存相应的评级,r.save引发有关列rating.id的错误。有没有办法在不修改数据库模式的情况下使事情有效?
答案 0 :(得分:0)
您收到错误的原因是您的评级表包含数据但没有和id列。
在您的评分表中添加并标识列,并保存更改通话rating.save。