传递多个参数 - Rails控制器

时间:2012-10-04 18:27:54

标签: ruby-on-rails

Newb RoR开发人员。

我有一个名为size.rb的模型,它基本上有各种尺寸元素。

现在,在我后来的观点中,我有多套radio_button_tags。由于每个集都是独立的,因此我重命名了每个集(shirtsize_idswaistsize_ids等)

现在,我遇到的问题是如何将所有这些不同的size_id参数传递给控制器​​。在一天结束时,它们都被记录为名为usersize的联合模型中的size_id属性,但由于我必须在视图中区分它们(出于单选按钮的目的),我被卡住了! / p>

感谢您的帮助

查看

<% Size.select { |size| size.category == 'waist' }.sort.each do |size| %>
<%= radio_button_tag 'waistsize_ids[]', size.id, false, :id => "waistsizing-#{size.id}" %>
<% Size.select { |size| size.category == 'waist' }.sort.each do |size| %>
<%= radio_button_tag 'inseamsize_ids[]', size.id, false, :id => "inseamsizing-#{size.id}" %>

控制器

def create
  @user_size = UserSize.new(params[:user_size])    
  params = {"waistsize" => {'id' => 'size.id'}}
  params.each do |size|

  UserSize.create(:size_id => size.id, :user_id => current_user.id)
  end
end

2 个答案:

答案 0 :(得分:2)

radio_buttonradio_button_tag可能是更好的选择:

<%= radio_button :waistsize, :id, size.id, :checked => false, :id => "waistsizing-#{size.id}" %>
<%= radio_button :inseamsize, :id, size.id, :checked => false, :id => "inseamsizing-#{size.id}" %>

# => params = { ..., "waistsize"=>{"id"=>"xyz"}, "inseamsize"=>{"id"=>"xyz"} }

然后,在控制器中:

def create
  @user_size = UserSize.new(params[:user_size])    
  UserSize.create(:size_id => params[:waistsize][:id], :user_id => current_user.id)
  UserSize.create(:size_id => params[:inseamsize][:id], :user_id => current_user.id)
end

答案 1 :(得分:0)

UserSize模型是否类似'size_type',或者为什么你有'waistsize'和'inseamsize'等等。