Заполните поля формы, используя раскрывающийся список и AJAX с Rails - PullRequest
1 голос
/ 27 ноября 2009

У меня есть поле формы, в котором пользователь вводит контактную информацию, включая имя, адрес электронной почты и т. Д. Если у них уже есть сохраненные контакты, я хочу иметь выпадающий список с сохраненными контактами. Если выбран контакт из раскрывающегося списка, поля контактов должны быть заполнены этими данными, чтобы их можно было легко редактировать.

По какой-то причине этот подход не работает:

В моем представлении new.html.erb:

<%= f.collection_select :id, @contacts, :id, :name, :onchange =>
remote_function(:url =>{:action => 'populate_contact_form'}, :with => 'id') %>

В моем контроллере:

def populate_contact_form
raise "I am working up to this point"
@contact = current_account.contacts.find(params[:id])
end

В populate_contact_form.rjs:

page['contact_name'].value = @contact.name
page['contact_email'].value = @contact.email

Кажется, мой метод контроллера никогда не вызывается ... Кто-нибудь может объяснить, как это сделать?

1 Ответ

1 голос
/ 27 ноября 2009

Не вызывается, потому что вы используете remote_function неправильно. Rails предполагает текущее действие / controller / id / etc, если какая-либо из этих опций отсутствует в опции: url для remote_function. Вы передаете: action как параметр верхнего уровня для remote_function, и он игнорируется. С опцией: url Rails предполагает то же действие и контроллер, который отображал это представление.

Это должно решить вашу проблему:

<%= f.collection_select :id, @contacts, :id, :name, :onchange => 
  remote_function(:url =>{:action => 'populate_contact_form'}, :with => 'id') %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...