添加自定义选项以选择值

时间:2019-05-03 02:15:23

标签: ruby-on-rails ruby-on-rails-5

我可以选择一个集合中的选项

<%= select('task', 'person_id', Person.where(:job_id => @job.id).order(:name).collect {|p| [p.name, p.id]}, {:include_blank => true}, :required => true)  %>

我想在此选择项中添加“不适用”选项,但不确定如何执行。我将其设置为添加空白,并且将其也设置为必填。有了这两个事实,某人不能只是选择空白。我有必要的设置,因为我希望我的员工考虑他们选择的选项。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我会创建一个类似这样的辅助方法

def person_options(options = {})
  options_for_select([["Not Applicable", ""]] + Person.where(:job_id => @job.id).order(:name).collect {|p| [p.name, p.id]}, options)
end

然后您可以像这样从erb调用它

  <td><%= f.select :person_id, person_options(selected: @person. person_id, include_blank: true), {}, {style: 'width:auto'} %></td>

可能需要对您的项目进行调整