HABTM与强参数的关联不会在Rails 4中保存用户

Rav*_*hal 4 has-and-belongs-to-many strong-parameters ruby-on-rails-4

用户模型:

has_and_belongs_to_many :events
Run Code Online (Sandbox Code Playgroud)

活动模式:

has_and_belongs_to_many :users
Run Code Online (Sandbox Code Playgroud)

用户控制器:

params.require(:user).permit(:role, {:event_ids => []})
Run Code Online (Sandbox Code Playgroud)

事件控制器:

params.require(:event).permit(:subject, :location, :date, :time, :all_day, :reminder, :notes, {:users_ids => []})
Run Code Online (Sandbox Code Playgroud)

我的表格:

<%= simple_form_for(@event) do |f| %>
    <%= f.input :subject %>
    <%= f.input :location %>
    <%= f.input :date %>
    <%= f.input :time %>
    <%= f.association :users %>
    <%= f.input :all_day %>
    <%= f.input :reminder %>
    <%= f.input :notes %>

    <%= f.button :submit, :class =>"btn btn-default" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我希望能够从列表中选择用户并将该用户保存到数据库中.但是当我尝试创建一个新事件时,我在控制台中收到以下消息:

Unpermitted parameters: user_ids
Run Code Online (Sandbox Code Playgroud)

我的设置不正确吗?我没有将正确的实例变量传递给表单吗?

Rav*_*hal 7

呃...详细信息!

以前怎么样:

params.require(:event).permit(:subject, :location, :date, :time, :all_day, :reminder, :notes, {:users_ids => []})
Run Code Online (Sandbox Code Playgroud)

怎么样:

params.require(:event).permit(:subject, :location, :date, :time, :all_day, :reminder, :notes, {:user_ids => []})
Run Code Online (Sandbox Code Playgroud)

请注意:users_ids实际上应该是:user_ids!


Amm*_*hah 5

或者你可以简单地使用这样的速记语法.

params.require(:event).permit(:subject, :location, :date, :time, :all_day, :reminder, :notes, user_ids: [])
Run Code Online (Sandbox Code Playgroud)

注意:user_ids: []而不是{:user_ids => []}