0

Ruby on Rails アプリケーションを開発していますが、現在、ドロップダウン項目の選択に応じて特定のアクションを実行する必要があります。

次のコードがあります。

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

ユーザーが 1 つのオプションを選択したときに特定のアクションをトリガーするにはどうすればよいですか? そのオプションのそのIDにアクセスして特定のアクションを実行する方法は?

何かアドバイス?

ありがとう

4

2 に答える 2

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

それでおしまい :)

于 2013-10-17T19:24:56.103 に答える
0

Rails は、単数形のリソース名の後に属性名が続く ID を作成します。例Post.title => "post_title"

サンプルコードに従うと、次のような結果になります

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

参照: dom_id

于 2013-10-15T01:15:22.030 に答える