我有一个控制器动作,我试图只渲染js。这就是我所拥有的
def get_script
respond_to :js
render :script
end
我正在使用respond_to:js来强制请求仅响应js。然后我调用render:script来加载一个名为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。其次,当应该查找script.js.erb时,渲染器正在寻找get_script.js.erb。我使用以下文档作为渲染资源:Layouts and Rendering
问题:
1。)respond_to:js是否做了我希望它做的事情,或者我是否必须把它放在do |格式中。方框?
2.。)为什么不渲染:脚本寻找script.js.erb?
答案 0 :(得分:0)
Have you tried this inside your view?
render "widgets/script.js.erb", format: :js