1
我無法修改RoR中的現有關係。 DB模式是用戶(ID),圖書(ID,標題),評級(USER_ID,book_id,評級) 模型是在Rails中保存相關實體
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 => 1, :rating => 5); book.save工作正常,但我不能修改現有評級,
r = book.ratings.where(:user_id => 1).first
r.rating = 5
book.save不保存相應的等級和r.save提出了有關列rating.id錯誤。有沒有辦法讓事情沒有修改數據庫架構的工作?
我認爲,在'books_controller'內,在更新操作中,您必須遍歷每個'Rating':'@book.ratings.each do {| r |例如,r.attributes = params [:rating] [r.id.to_s]}。你想從控制檯或方法中做到這一點? – Zkoh 2011-01-13 15:35:29
`book.ratings.where(:user_id => 1).to_sql`和`r.inspect`的輸出(在控制檯中)是什麼? – 2011-01-13 15:42:31