我有2個模型通過關聯與has_many連接。 Book
可以有很多作者和Author
許多書籍。更新來自ID數組的has_many關聯
AuthorsController
in update
來自API的操作我得到了作者的ID和一個書號ID Parameters: {"books"=>"3,4,5", "id"=>"1"}
的數組,我需要用它們更新作者的書。 實現該目標的最佳方法是什麼?
我試過author.books << Book.where(id: params[:books])
但這裏的問題是,如果一本書已經在作者的書中,它將被複制。
最簡單的方法解決你的問題是將你的params從'books'改爲'book_ids',然後ActiveRecord會照顧休息。請參閱[ActiveRecord關聯](http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many)和'collection_singular_ids = ids' –