使用user_id POST创建新表条目

时间:2013-12-20 17:43:15

标签: ruby-on-rails ruby-on-rails-3 forms input

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_controller
def create
  @trained = params[:certificate][:user_id] 
  params[:certificate][:attend] = "no"
  params[:certificate][:pass] = "no"
end

我一直在尝试不同的create()方法,但我不知所措。如何让POST使用user_id创建新证书?我需要将sumbit按钮分成两个按钮,一个用于添加,另一个用于删除。

1 个答案:

答案 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