Функциональность, которую я планирую сделать, заключается в вставке некоторых элементов формы в зависимости от числа, выбранного из тега выбора.
У меня есть выбор Тэг вызван для number_of_passengers, и я планирую динамически добавлять новые поля пассажира для выбранного номера. Скажем, я выбрал 2 из number_of_passengers, тогда в наборе полей должны появиться 2 формы. эти формы содержат имя, возраст и т. д.
Я попытался сделать следующее:
вызывать функцию rails из jquery?
и просто конвертировать ее в хамл-говорящий, но я получаю ошибки всякий раз, когда использую тег: javascript. Кроме того, я не думаю, что смогу «избежать» тега javascript, как только я нахожусь в нем
:javascript
$('#number_of_passengers').change(function() {
var $num_of_passengers = $(this).val();
for($i=0; $i<$num_of_passengers;$i++) {
$('.passenger-info ul').append('<%= escape_javascript( render :partial => "new_passenger", :locals => {:booking => @booking }) %>');
}
})
, так как я нахожусь в form_for, как я могу передать переменную @booking в локальную переменную? Это кажется действительно сложным, и я планирую сделать «грязный» выход - просто зацикливаться 20 раз (максимум 20 пассажиров), а затем просто скрывать / показывать их в зависимости от выбранного числа. Но вы думаете, что это слишком грязно?
Синтаксис Rails все время меняется, но не должно быть
render :partial => "new_passenger", :locals {:booking => @booking })
render :partial => "new_passenger", :locals => {:booking => @booking })
Вы можете избежать javascript внутри блока javascript, потому что вы оцениваете теги ruby.
Какие сообщения об ошибках вы получаете?
Мне непонятна последняя часть вашего вопроса, но это то, что вы ищете:
- form_for @user do |f|
# f.object is equal to @user
Чтобы интерполяция работала, вам нужно сделать что-то вроде
!= "$('.passenger-info ul').append('#{escape_javascript( render :partial => 'new_passenger', :locals => {:booking => @booking })}');
, проще говоря: добавить ! =
до начала строки и включить строку в двойные кавычки.
Ваш вопрос о @booking
: Я предлагаю вам изучить некоторые примеры вложенных форм, чтобы вам было понятнее (например, this и this railscast).