Передача JavaScript через функцию, html_safe, raw и f не работает - PullRequest
1 голос
/ 10 декабря 2011

Я следил за 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&lt;input class=&quot;time&quot; ...

Что бы я хотел, это:

  Start Time<input class="time hasDatepicker" ...

hasDatePicker является функцией jquery для времени класса. Это, наверное, что-то простое, что я еще не понял Но, спасибо, что прочитали и ваши комментарии заранее.

Если вам кажется, что код больше не нужен, просто скажите мне. Я полагаю, что это все, что требуется. Я использую Rails 3.1 и Ruby 1.9.2p290.

Еще раз спасибо.

...