我正在尝试使用jQuery链式select。这是一个所需的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作为每个任务的类呢?
谢谢!
发布于 2014-11-08 04:40:41
我偶然发现了你的问题,我知道这个问题很古老,但我已经用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从本质上讲,您使用的是HTML包装器input,但是定义了一些定制的simple_form在包装器中使用(在本例中,它使用的是Rails select表单助手)。Rails助手允许您按照@pduersteler的回答传递类。
我在我的视图中使用了HAML,以防这一点不清楚:)
发布于 2012-05-05 06:11:42
一种可能是使用select而不是collection_select,并使用options_for_select帮助器将您的集合传递给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'})
未经测试,可能需要修改
https://stackoverflow.com/questions/10454452
复制相似问题