Rails 4 respond_to javascript

时间:2014-01-25 12:18:22

标签: javascript ruby-on-rails controller format

我有一个简单的PagesController和'homepage'方法。 我只想让方法响应我的homepage.js.erb模板文件,其中包含一个简单的console.log("Hello World!"); 所以我写了respond_to do |format| format.js format.html end 在我的主页方法,但它什么也没做。 (我的Chrome控制台中没有hello world)。 如果我删除了format.html rails,则会向我显示此错误"ActionController::UnknownFormat"

turbolinks有问题吗?我该怎么办?

感谢JD

1 个答案:

答案 0 :(得分:0)

Turbolinks以Html的形式发送请求,因此js文件不会被呈现,但是HTML一,而客户端turbolinks只是用新内容替换body并更新URL。

如果要渲染js.erb文件,则需要启动js请求而不是html。只需在link_to中写入remote true。

实施例

= link_to 'XYZ', url, :remote => true

或者,如果您想在浏览器上为HTML请求执行js代码,那么您需要在HTML文件中编写JavaScript代码(format.html)

示例:

javascript:
  console.log("Hello World!");