1
我創建了一個連接表所示:如何在Rails 5中使用Active Record更新postgres布爾型字段?
class CreateJoinTablePurchaseUser < ActiveRecord::Migration[5.0]
def change
create_join_table :purchases, :users, table_name: :participation_requests do |t|
# t.index [:purchase_id, :user_id]
# t.index [:user_id, :purchase_id]
t.boolean :approved, default: false
end
end
這裏是我的模型:
class ParticipationRequest < ApplicationRecord
end
我在表中創建的行成功。然而,當我嘗試更新,像這樣的布爾值:
pr = ParticipationRequest.find_by(user_id: 1, purchase_id: 1)
pr.update_attributes(approved: true)
PR返回該行,我得到這個消息的更新一個ROLLBACK:
TypeError: nil is not a symbol nor a string
我認識到,連接表與其他表格不同,因爲它不像我的常規表格那樣編入索引。主鍵似乎是user_id和purchase_id的組合。我在任何其他表上使用update_attributes都沒有問題。這個連接表有什麼不同,不允許我以這種方式更新屬性?
謝謝!它工作出色! – arjis02