Rails 3.1将JS.erb作为html返回

时间:2012-08-03 22:18:30

标签: javascript ruby ruby-on-rails-3.1

我有3.0,我刚才升级到3.1。我现在尝试在项目中添加一些ajax,但由于某些原因,它看起来设置正确并且链接触发为远程链接,它返回的响应是html。

所以我像这样设置控制器:

respond_to do |format|
  format.js
end

在视图中:

%li=link_to comp.title, company_filter_path(comp.id), :remote=>true

但是在萤火虫中,它会返回一个这样的页面:

<!DOCTYPE html>
<html>
  <head>
    <title>test</title>

  </head>
  <body id='home' lang='en'>

      <section>
        <!-- = content_tag :h1, yield(:title) if show_title? -->

        alert("hello")

        console.log(2)

      </section>
  </body>
</html>

我认为这可能是我在升级时遗漏的东西,但我看不清楚,有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

一位朋友给了我答案,面对同样的问题。

我在应用程序文件夹中定义了布局,这迫使js呈现为模板。

将格式更改为:

respond_to do |format|
      format.html { render "index"}
      format.js{render :content_type=>'text/javascript',:layout=>false}
    end

一切都很完美!