ActiveRecord で次のように接続されたユーザー モデルとロール モデルがあります。
has_many roles, through: :role_accounts
各ロールに 1 つずつ、チェックボックスのリストがある「ユーザーの編集」画面が必要です。Reform gem (v2.1.0) を使用したフォーム オブジェクトのスニペット:
class UserForm < Reform::Form
property :name
collection :roles do
property :id
end
end
私の問題は、編集フォームが送信され、2 つのロールがチェックされると、params ハッシュが次のよう{"user=>{"name"=>"Joe","roles"=>["2","5",""]}}になり、次のエラーが発生することです。
[Reform] Your :populator did not return a Reform::Form instance for `roles`.
has_many スルーの populator を設定するにはどうすればよいですか?
また、最初にすべてのユーザーの役割を削除してから、選択した役割を追加する必要があると思います。これにより、現在の役割のセットのみになります。改革宝石でこれを行うにはどうすればよいですか?