Как вернуть индекс.html.erb в файле js.html.erb

#ruby-on-rails #ruby-on-rails-3

#ruby-on-rails #ruby-on-rails-3

Вопрос:

У меня есть контроллер, подобный этому:

   def index
    respond_to do |format|
      format.html {}
      format.js {render :layout => false}
    end
  end
  

index.html.erb

 hello i"m index.html.erb
  

index.js.erb

 <%= render :template => "dashboard/index" %>
  

Что я хочу сделать, так это иметь index.html или index.js верните то же самое. Но я не вижу, как это сделать, не сделав index.html.erb частичным (_index.html.erb), но затем, когда пользователь выполняет html-вызов, который не будет работать.

Как я могу заставить index.js.erb отображать index.html.erb? который я бы затем экранировал с помощью jQuery. Спасибо

Ответ №1:

Попробуйте:

 <%= raw render(:template => "dashboard/index").to_json %>
  

Комментарии:

1. По сути, это просто то, что вы хотите: преобразование HTML-представления в js.

Ответ №2:

В моем приложении есть этот код для этого:

 <%= escape_javascript(render :file => "/posts/index.html.erb") %>
  

Не уверен, что это «правильный» способ, но он определенно работает.