我有两种模式:用户和书籍(用户拥有书籍,每本书都有价格)。我想更改特定用户的所有价格。
我试过了:
def update
@book = Book.find(params[:id])
user = User.find(params[:id])
Book.update_all({:price => 0}, {:id => user.books})
end
(目前只更新特定用户的一本书)
网址如下:
localhost:3000/users/103/account
我想我还需要从网址中获取用户ID吗?
答案 0 :(得分:1)
请改为尝试:
Book.where(:id=> user.books).update_all(:price => 0)
update_all
的{{3}}以及第二个“条件”参数已弃用。这是old version。
答案 1 :(得分:1)
def update
user = User.find(params[:id])
user.books.update_all({:price => 0})
rescue ActiveRecord::RecordNotFound
# what happens if user doesn't exist?
end