У меня есть форма события с некоторыми вложенными моделями атрибутов. Дополнительные модели отображаются после выбора клиента из поля выбора. Наблюдатель наблюдает и вызывает действие контроллера, которое отображает частичное, содержащее поля для вложенных моделей. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу передать блок «форма» события в недавно оказанное частичное - по крайней мере, я не могу понять, как ...Передача объекта формы частичной визуализации из запроса ajax
Код ниже вызывает ошибку: «Неправильно количество аргументов (0 для 1) ". Любая помощь или предложения приветствуются. Как уже упоминалось ниже, я также хочу повторно реализовать это, используя ненавязчивый JavaScript, если вы можете предоставить пример для этого сценария.
Форма проведения:
<%- form_for @event do |form| %>
<%= select_tag :id=>event_client_id %>
<%= observe_field :event_client_id, url => {:action => 'client_questions'}, :with => "'client_id=' + encodeURIComponent(value)+'&event_id='+#{@event.id} %>
Controller Event
def client_questions
@event = Event.find(params[:event_id])
@client = Client.find(params[:client_id])
@client_questions = @client.questions.active
respond_to do |format|
format.js {
render :update do |page|
page[:client_questions].replace_html :partial => 'client_questions', :layout => false
end
}
end
end
_client_questions.html.erb частичная
<%- form.fields_for :client, @client do |client| %>
<%= client_text_field :name %>
<%- client.fields_for :questions do |question| %>
<%=question.text_field :content %>
Один совет: используйте ненавязчивый javascript http://en.wikipedia.org/wiki/Unobtrusive_JavaScript – marcgg
Я готов внести это изменение. Можете ли вы привести пример для этого сценария? Я, очевидно, использую прототип в этом приложении, чтобы вы могли использовать эту библиотеку. –
Использование ненавязчивого js не имеет никакого значения в этом сценарии. Хотя это считается лучшей практикой, здесь это не актуально. Я хотел бы, чтобы это приложение было ненавязчивым, но поскольку я унаследовал какой-то код elses, у меня не было такого выбора. –