2013-10-15 6 views
0

Я разрабатываю приложение Ruby on Rails, и в настоящее время мне нужно сделать определенное действие в зависимости от выбора выпадающего элемента.Действие при выпадающем опционном выборе

У меня есть следующий код:

<%= collection_select(:cat, :cat_id, @cats, :id, :full_name) %> 

Как я могу вызвать определенное действие, когда пользователь выбирает один из вариантов? Как получить доступ к этому идентификатору этого параметра и выполнить конкретное действие?

Любые советы?

Благодаря

ответ

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 
}); 

Вот это :)

0

Rails создает идентификаторы с особой формой имени ресурса, за которым следует имя атрибута. Например. Post.title => "post_title".

После вашего кода примера это приведет к чему-то вроде

<select id="post_cat_id"></select> 

см: dom_id

Смежные вопросы