【问题标题】:RoR using Chained Selects jQuery PluginRoR 使用链式选择 jQuery 插件
【发布时间】:2014-11-08 04:40:40
【问题描述】:

我正在尝试使用 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 作为每个任务的类?

谢谢!

【问题讨论】:

    标签: jquery ruby-on-rails


    【解决方案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 :)

    【讨论】:

      【解决方案2】:

      一种可能性是使用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 =&gt; p.id}] }
      查看:select(:project, :projname, options_for_select(@projects), {:class=&gt;'project_select'})

      未经测试,可能需要修改

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-04
        • 1970-01-01
        • 2013-06-09
        相关资源
        最近更新 更多