Как я могу отправить параметр субъекта в контроллер с помощью remote_function? - PullRequest
0 голосов
/ 24 мая 2011

Предположим, эта форма:

<% 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 ]

1 голос
/ 24 мая 2011

Эй, я мог бы ответить на ваш вопрос с деталями. Вместо этого вы должны смотреть только этот скринкаст:

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

Объясняет, что вам нужно, и с более подробными инструкциями.

Надеюсь, это поможет.

0 голосов
/ 24 мая 2011

Я изменил свой выбор:

<%= 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

...