如何使用remote_function将主题参数发送到控制器?

时间:2011-05-23 23:58:59

标签: ruby-on-rails erb

假设这种形式:

<% form_for(@student) do |f| %>
<%= f.select(:subject_id, 
             options_from_collection_for_select(@subjects, :id, :name), 
             {:prompt => 'Select a subject' },
             {:onChange => "#{remote_function(:update => :student_exam_id,
                                                         :url => { 
                                                            :action => :update_exams_list, 
                                                            :subject_id => 1
                                                         }
                                             )
                             }" } ) %>
<%= f.select(:exam_id, 
             options_from_collection_for_select(@exams, :id, :title) ) %>
<% end %>

当用户选择主题时,必须使用属于所选主题的考试更新考试选择器列表。

如何将主题参数发送到控制器?我尝试使用:subject_id => 1发送参数,但它不起作用。

请告诉我一些方法。

如果您需要更多信息,请问我。

非常感谢你。 问候。

2 个答案:

答案 0 :(得分:1)

嘿,我可以用细节回答你的问题。相反,你应该只看这个截屏视频:

http://railscasts.com/episodes/88-dynamic-select-menus

它解释了您需要的内容以及更详细的说明。

希望它有所帮助。

答案 1 :(得分:0)

我更改了我的选择:

<%= f.select(:subject_id, 
             options_from_collection_for_select(@subjects, :id, :name), 
             {:prompt => 'Select a subject' },
             {:onChange => remote_function(:update => :student_exam_id,
                                           :url => { :action => :update_exams_list }, 
                                           :with => "'subject_id=' + this.value") } ) %>

它有效。 :d