从控制器渲染js.erb

时间:2015-07-31 18:16:01

标签: ruby-on-rails model-view-controller rendering

我有一个控制器动作,我试图只渲染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?

1 个答案:

答案 0 :(得分:0)

Have you tried this inside your view?

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