Ruby on rails 嵌套的“选择多个选项”未保存

Ruby on rails 嵌套的“选择多个选项”未保存,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我使用嵌套表单创建了一个项目,以在“选择”上添加多个选项,但未正确保存 表格: |users| |id| |name| |lastname| 1 Cristiano Ronaldo 2 Lionel Messi 3 David Beckham 4 Thomas Muller |ejecutives| |id| |name| 1 Mourinho 2 Guardio

我使用嵌套表单创建了一个项目,以在“选择”上添加多个选项,但未正确保存

表格:

|users|
  |id| |name|      |lastname|
    1   Cristiano   Ronaldo
    2   Lionel      Messi
    3   David       Beckham
    4   Thomas      Muller

|ejecutives|
  |id|  |name|
    1    Mourinho
    2    Guardiola

|user_ejecutives|
  |id|   |user_id|   |ejecutive_id|
    1       1              1
    2       1              4
    3       2              3
    4       2              2
控制器用户\u控制器.rb

def new
  @user = User.new
  @ejecutives = Ejecutive.where('id=1')
  @user_ejecutives = @user.user_ejecutives.build
end

def create
  @user = User.new user_params
  @user.save
end

private
 def user_params
   params.require(:user).permit(:name,:lastname, user_ejecutives_attributes: [])
 end
型号:

#User.rb
has_many :user_ejecutives
accepts_nested_attributes_for :user_ejecutives  

#Ejecutive.rb
has_many :user_ejecutives

#UserEjecutive.rb
belongs_to :user
belongs_to :ejecutive
看法


没有保存在mysql中选择的名称I see NULL

查看服务器控制台,它说

Unpermitted parameters: user_ejecutives_attributes
users\u controller

params.require(:user).permit(:name, :lastname, user_ejecutive_ids: []  )
user\u ejbecutive\u id
更改为
user\u ejbecutives\u属性

它可能会工作

参数require(:user).permit(:name,:lastname,:user\u ejbecutives\u attributes)

不要忘记冒号(:user\u eJocutions\u属性而不是user\u eJocutions\u属性)。它是一个红宝石符号

用户模型的更改:
有很多:eJocutions,通过::user\u eJocutions

eJocutions模型中的更改:
有很多:用户,通过::user\u eJocutions

我会选择collection select而不是select:
f.collection\u select(:eExecutive\u id,eExecutive.all,:id,:name,{:include\u blank=>'请选择'})

是的,我这样做了,但仍然没有保存所选的选项。我编辑了文章。我做了检查,我的日志正在插入,但没有保存所选的选项。正在保存NullExecutions\u属性:[:id,:name]
Parameters: {"utf8"=>"✓", "user"=>{"name"=>"sddasdas", "lastname1"=>"das","user_ejecutives_attributes"=>{"0"=>{"ejecutive_id"=>["", "1", "2"] }}} , "commit"=>"Save"}
INSERT INTO `users` (`name`, `lastname1`, `created_at`, `updated_at`) VALUES ('David', 'Beckham',  '2016-03-28 19:43:18', '2016-03-28 19:43:18')
INSERT INTO `user_ejecutives` (`user_id`, `created_at`, `updated_at`) VALUES (68, '2016-03-28 19:43:18', '2016-03-28 19:43:18')
COMMIT
Unpermitted parameters: user_ejecutives_attributes
params.require(:user).permit(:name, :lastname, user_ejecutive_ids: []  )