Я следил за Railscasts 196 и 197, чтобы лучше изучать динамические формы вложенных моделей, и я могу справиться с этой проблемой.
Я не уверен, как передать javascript через функцию link_to_function, класс поля содержит указатель времени jquery.
def link_to_add_fields(name, f, association)
new_object = f.object.class.reflect_on_association(association).klass.new
fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
render(association.to_s.singularize + "_fields", :f => builder)
end
link_to_function(name, "add_fields(this, '#{association}', ' #{escape_javascript(fields)}')")
end
Я пытался использовать html_safe, raw и f вокруг переменной fields, но ни один из них не работал.
Вывод html добавленной формы с использованием escape_javascript выглядит следующим образом:
Start Time<input class="time" ...
Использование raw и html_safe вместо escape_javascript дает следующее:
Start Time<input class="time" ...
Что бы я хотел, это:
Start Time<input class="time hasDatepicker" ...
hasDatePicker является функцией jquery для времени класса. Это, наверное, что-то простое, что я еще не понял Но, спасибо, что прочитали и ваши комментарии заранее.
Если вам кажется, что код больше не нужен, просто скажите мне. Я полагаю, что это все, что требуется. Я использую Rails 3.1 и Ruby 1.9.2p290.
Еще раз спасибо.