У меня есть действие контроллера, которое я пытаюсь вывести только из 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?
Вы делаете «render js:: script' .., который будет работать. Не нужно 'reply_to: js' –
Это дает эту ошибку TypeError (неявное преобразование символа в строку): – TheJKFever
ok then do' render: js => 'script'' –