Rails服务器返回HTML而不是JavaScript

时间:2015-09-11 17:03:40

标签: javascript jquery html ajax ruby-on-rails-3

我有以下link_to帮助器:

# app/views/users/show.html.erb 

<div id="social">
  <%= link_to "Friends", index_friends_path, id: "index_friends", remote: true %>
</div>

由于:remote的值设置为true,我的期望是服务器自然会尝试使用AJAX响应返回JavaScript。

但是,每次单击链接时,AJAX响应都包含来自名为users/friends.html.erb的文件中的HTML,而不是JavaScript,它会动态呈现来自users/_friends.html.erb的HTML,这将是必需的行为。

我处理请求的代码如下:

- 路线:

# config/routes.rb

get '/index_friends' => 'users#friends'

- 动作:

# app/controllers/users_controller.rb

def friends
  ...

  respond_to do |format|
    format.js
    format.html
  end
end

- js.erb模板:

# app/views/friends.js.erb

$("#social").html("<%= j(render("friends")) %>");

相应的Rails日志条目如下所示:

# log/development.log

Started GET "/index_friends" for 127.0.0.1 at 2015-09-13 12:20:41 +0100
Processing by UsersController#friends as JS

1 个答案:

答案 0 :(得分:0)

尝试

"data-type" => "js"

之后

remote: true