2015-07-31 2 views
1

У меня есть действие контроллера, которое я пытаюсь вывести только из js. Вот что у меня естьRender js.erb от контроллера

def get_script 
    respond_to :js 
    render :script 
    end 

Я использую respond_to: JS, мы надеемся, заставит запрос только реагировать на JS. Тогда я звоню визуализацию: скрипт для загрузки файла с именем script.js.erb

Моего запроса следующий

Completed 500 Internal Server Error in 15ms (ActiveRecord: 0.5ms) 
ActionView::MissingTemplate (Missing template widgets/get_script, application/get_script with {:locale=>[:en], :formats=>[:js, :html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder]}. Searched in: 
    * "/home/jkoehms/TECC/tecc/app/views" 
    * "/home/jkoehms/.rvm/gems/ruby-2.0.0-p643/gems/devise-3.5.1/app/views" 
) 

Таким образом, есть две проблем здесь. Хотя запрос обрабатывается как JS, рендер ищет js или html, как указано в разделе форматов. Во-вторых, рендер ищет get_script.js.erb, когда он должен искать script.js.erb. Я использовал следующую документацию в качестве ресурса для оказания: Layouts and Rendering

Вопрос:

1.) Имеет ли respond_to: JS делать то, что я надеюсь, что это сделать, или я должен поставить его в a do | format | блок?

2.) Почему не рендер: скрипт ищет script.js.erb?

+1

Вы делаете «render js:: script' .., который будет работать. Не нужно 'reply_to: js' –

+0

Это дает эту ошибку TypeError (неявное преобразование символа в строку): – TheJKFever

+0

ok then do' render: js => 'script'' –

ответ

0

Вы пробовали это в своем представлении?

render "widgets/script.js.erb", format: :js

Смежные вопросы