我希望有一个简单的选择字段,该字段允许用户选择一些要加入工作团队的用户。
#jobs.rb
class Job < ApplicationRecord
has_many :team_members
end
#jobs_controller.rb
class JobsController < ApplicationController
def update
@job = Job.find(params[:id])
if @job.update_attributes(job_params)
flash[:notice] = "Job Saved"
redirect_to job_path(@job)
else
flash[:alert] = "Job Not Saved"
render :edit
end
end
private
def job_params
params.require(:job).permit(
team_member_ids: []
)
end
end
# jobs/edit.html.erb
<%= f.select :team_member_ids, User.all, {:include_blank => "None"},{ :multiple => true} %>
这给我一个错误
找不到ID为117、23、30的TeamMembers。
我在这里错过了一些简单的东西吗?还是以错误的方式管理表单中的数据?
更新,参数哈希:
{"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"xxxx",
"job"=>
{
"jobtype"=>"Cutting",
"status"=>"Not_Started",
"team_member_ids"=>["", "117", "23", "30"]},
"commit"=>"Update Job",
"id"=>"84"}
答案 0 :(得分:0)
糟糕,这有点愚蠢。
ID是用户ID,但是我将它们作为team_member ID传递。其中team_member是联接表。 修复为:
failonerror="true"