传递的价值不同于表格中提供的价值

时间:2015-01-06 16:27:50

标签: ruby-on-rails ruby ruby-on-rails-4 simple-form

好吧,伙计们,我真的需要你的帮助......我在rails世界里很新,似乎被困在一个非常基本的东西上。

我有一个表格(使用simple_form_for),如下所示:

= simple_form_for :search, url: places_path do |p|
  = p.input :group_name, :as => :autocomplete, :source_array => @groups.map { |g| g.name }
  = p.input :start_date, placeholder: Time.now.strftime("%Y-%m-%d"), :input_html => { :id => 'start_date_picker' }
  = p.input :end_date, placeholder: Time.now.strftime("%Y-%m-%d"), :input_html => { :id => 'end_date_picker' }
  = p.input :computer_lab, as: :boolean, boolean_style: :inline
  = p.button :submit

当用户在第一个输入group_name中输入内容时,他会得到建议而且没关系,但我需要的是能够传递不同的值(来自模型的不同实例变量)而不是内部输入。

这是我的Group模型:

class Group
  include ActiveModel::Model

  attr_accessor :id, :name, :type, :type_name
end

当用户点击Submit时,我需要传递:id而不是:name怎么样??我被困在这里...我的临时解决方案是通过:name并在places_path下再次获得所有分组,并寻找具有提供名称的组以获得它id ...我觉得我正在尝试重新发明轮子。

1 个答案:

答案 0 :(得分:0)

请发布你的group_controller.rb。但似乎您的参数未设置为id。在控制器中尝试这样的事情:

def create
  @group = Group.new(params[:id])
  # followed by your save arguments
end

希望这有帮助