12

複数選択チェックボックスであるビューにこれがあります

モデル

class User < ActiveRecord::Base
  has_many :user_roles, :dependent => :destroy
  accepts_nested_attributes_for :user_roles, :allow_destroy => true
  has_many :roles, :through => :user_roles
end

見る

<%= check_box_tag 'user[role_ids][]', role.id, user.blank? ? nil : user.roles.include?(role) ,id: dom_id(role)%>

このための強力なパラメーターは次のように記述されます

  def user
    params.require(:user).permit(:first_name,{:role_ids => []})
  end

しかし、作成時にそれは言う

Processing by Admin::UsersController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"+y8iWya5KIILqS0embEUEZuClycXq0O9Q4pA+MnbM0g=", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"a@loclahost.com", "language"=>"en", "access_level_id"=>"1", "role_ids"=>["", "1", "", "5", "", "", ""], "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Create user"}

Unpermitted parameters: role_ids
Unpermitted parameters: role_ids
Unpermitted parameters: role_ids
Unpermitted parameters: role_ids

フォームから来る role_ids の配列を受け入れないのはなぜですか?

4

3 に答える 3

8

これはうまくいくはずです

params.require(:user).permit(:first_name, :role_ids => [])
于 2013-07-26T10:49:41.590 に答える