我正在尝试使用jQuery链式选择。 这是所需的HTML示例(不是我正在使用的代码 - 但是,会让您了解jquery如何要求HTML查看):
<select id="mark">
<option value="">--</option>
<option value="bmw">BMW</option>
<option value="audi">Audi</option>
</select>
<select id="series">
<option value="">--</option>
<option value="series-3" class="bmw">3 series</option>
<option value="series-5" class="bmw">5 series</option>
<option value="series-6" class="bmw">6 series</option>
<option value="a3" class="audi">A3</option>
<option value="a4" class="audi">A4</option>
<option value="a5" class="audi">A5</option>
我的RoR应用程序包含客户端,项目和任务 我需要任务选项中的类来包含project.id
现在我正在使用Simple-Form,代码如下:
<%= collection_select(:project, :projname, Project.all, :id, :client_project, {}, {:class=>'project_select'}) %>
<%= f.association :task, :label_method => :taskname, :label => 'Task' %>
该集合列出了项目(我已将客户端连接到项目)。所以HTML的第一部分很好。
但是,如何让关联代码使用project.id作为每个任务的类?
谢谢!
答案 0 :(得分:1)
我偶然发现了你的问题,我知道它已经过时了,但我已经通过以下方式使用simple-form
解决了这个问题:
= form.input :task do
= form.select :task_id, Task.all.map { |t| [t.taskname, t.id, { :class => t.project_id }] }, :include_blank => true
本质上,您使用simple_form包装器input
,但定义了一些在包装器中使用的自定义HTML(在这种情况下,它使用Rails select
表单帮助器)。 Rails助手允许您根据@ pduersteler的答案传递课程。
我在我的观点中使用HAML,以防万一不清楚:)
答案 1 :(得分:0)
一种可能性是使用select
代替collection_select
,并使用select
帮助将您的集合传递给options_for_select
。使用options_for_select
允许将html作为第三个属性传递。见这里:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select
控制器:@projects = Project.all.map{ |p| [p.projname, p.id, {:class => p.id}] }
查看:select(:project, :projname, options_for_select(@projects), {:class=>'project_select'})
未经测试,可能需要修改