Ruby on Rails 3
我有一个提交user_id的表单。我试图让POST使用user_id创建一个新的证书条目,并使:参与属性“是”。
发送的帖子是:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"xYUdeMjkxa1b0AhNTKJi9sDbSPo9MbwMMVPrV7cgpyo=", "certificate"=>[{"user_id"=>"1"}], "commit"=>"Submit"}
这是我的编辑:
<%= form_for(@trained) do |f| %>
<%= select_tag "certificate[][user_id]", options_for_select(@current_users.collect{|x| [x.name, x.id]}), {:multiple => :multiple} %>
<%= f.submit "Submit", class: "btn btn-large btn-primary" %>
<% end %>
这是我的模特:
class Certificate < ActiveRecord::Base
attr_accessible :attend, :pass, :user_id
validates :user_id, presence: true
end
这是我的编辑控制器()
def edit
@trained = Certificate.new(params[:user_id])
end
这是我对create()
的certificate_controllerdef create
@trained = params[:certificate][:user_id]
params[:certificate][:attend] = "no"
params[:certificate][:pass] = "no"
end
我一直在尝试不同的create()方法,但我不知所措。如何让POST使用user_id创建新证书?我需要将sumbit按钮分成两个按钮,一个用于添加,另一个用于删除。
答案 0 :(得分:0)
为什么你select_tag“certificate [] [user_id]”从那里删除那个额外的[]
select_tag "certificate[user_id]"
也在控制器
中@trained = Certificate.new(params[:certificate])
params[:certificate][:attend] = "no"
params[:certificate][:pass] = "no"
@trained.save