Rails - 根据集合选择动态显示数据

时间:2013-03-28 15:24:06

标签: jquery ruby-on-rails

我在一个模型中有一堆数据,我希望根据集合选择(下拉)框显示。部分数据看起来像这样......

class CreateSections < ActiveRecord::Migration
  def change
    create_table :sections do |t|
      t.string :supervisor
      t.string :catagory
      t.string :title
      t.string :description
      t.string :days
      t.string :start_date
      t.string :end_date
      t.string :start_time
      t.string :end_time
      t.string :course_id
      t.string :room
      t.string :building
      t.string :location
      t.string :tuition
      t.string :lab_fee
      t.string :insurance_fee
      t.string :technology_fee

      t.timestamps
    end
  end
end

我的收藏选择看起来像这样......

  collection_select(:section, :section_id, @sections, :id, :title)

因此用户将从下拉列表中选择标题,我想显示说明。理想情况下,我想用jquery做这个。

修改

以下是有关html外观的更多信息......

 <select id="section_section_id" name="section[section_id]"><option value="1">Long Title</option>
<option value="2"> Alternative Investments for Small Business  NEW</option>
<option value="3">Bookkeeping Basics for the Natural Products Industry  NEW  </option>
...

在app / assets / javascripts / sections.js中我现在......

$(function(){
  $("#section_section_id").change(function(){
    alert('wintas');
  })
})

所以现在基于所选的选项,我想显示与该选项相关联的值。

1 个答案:

答案 0 :(得分:2)

您可以使用options_for_select将要显示的信息放在该选项的数据属性中

假设您在表单的上下文中有选择

<%= f.select :section, :section_id, options_for_select(@sections.map{ |s| [s.title, s.id, {'data-description'=>s.description}] }) %>

这将生成像这样的HTML

<option value="2" data-description= "description of 2"> Alternative Investments for Small Business  NEW</option>
<option value="3" data-description="description of 3">Bookkeeping Basics for the Natural Products Industry  NEW  </option>

然后您可以使用js来显示它

这是js的工作演示

http://jsfiddle.net/Tt3TS/

希望有所帮助