Приложение выводит код на экран вместо просмотра в рельсах 3.1.0 - PullRequest
0 голосов
/ 20 января 2012

В нашем приложении поле выбора динамически добавляется в новую форму rfq. Проблема в том, что вместо представления код выводится на экран. Код основан на railscasts.com # 197 с некоторыми изменениями.

Вот код в rfqs / _form_new.html.erb:

  <div id="std">
  <%= render :partial => 'standards', :collection => @rfq.standards, :locals => { :f => f } %>
  </div>
  <p><%= link_to_add_fields "Add Std", f, :standards, @rfq %></p>

Вот снимок экрана после нажатия «Добавить стандарт»:

screen shot for

Вот поля link_to_add_file:

  def link_to_add_fields(name, f, association, obj)
    if association == :standards
      new_object = obj.standards.build
    else
      new_object = obj.test_items.build
    end

    link_to_function(name, "add_fields(this, \"#{association}\", \"escape_javascript(render :partial => association.to_s, :collection => new_object, :locals => { :f => f })\")")
  end  

Вот поля add_file:

function add_fields(link, association, content) {
  var new_id = new Date().getTime();
  var regexp = new RegExp("new_" + association, "g")
  $(link).parent().before(content.replace(regexp, new_id));
}      

Отношение между rfq и стандартом - HABTM. В примере с Railscasts.com это соотношение has_many и own_to.

Большое спасибо за помощь.

1 Ответ

1 голос
/ 21 января 2012

Проблема в том, что вы передаете строку с escape_javascript ... в функцию link_to_function.

Вы, вероятно, хотите немедленно визуализировать частичное и поместить его в функцию link_to_function

link_to_function(name, "add_fields(this, \"#{association}\", #{escape_javascript(render :partial => association.to_s, :collection => new_object, :locals => { :f => f })})")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...