我正在开发Ruby on Rails应用程序,目前我需要根据下拉项目的选择进行具体操作。
我有以下代码:
<%= collection_select(:cat, :cat_id, @cats, :id, :full_name) %>
当用户选择一个选项时,如何触发特定操作?如何访问该选项的ID并执行特定操作?
有什么建议吗?
谢谢
答案 0 :(得分:0)
Rails使用资源名称的单数形式创建id,后跟属性的名称。例如。 Post.title => "post_title"
。
按照您的示例代码,它会产生类似
的内容<select id="post_cat_id"></select>
请参阅:dom_id
答案 1 :(得分:0)
如果我们有这样的模型:
create_table "doctors", force: true do |t|
t.string "name"
t.string "last_name"
t.datetime "created_at"
t.datetime "updated_at"
end
class Doctor < ActiveRecord::Base
has_many :appointments
has_many :users, :through => :appointments
def full_name
"#{name} #{last_name}"
end
end
Home
控制器:
class StaticController < ApplicationController
def home
@doctors = Doctor.all
end
end
我们可以在Home
内查看:
<div>
<p>Pick a doctor</p>
<%= collection_select(:doctor, :id, @doctors, :id, :full_name) %>
</div>
用户从下拉菜单中选择另一个值后,会触发一些操作:
$("#doctor_id").change(function() {
var selectedVal = $(this).val();
// Do something depending on selected value
});
就是这样:))