Rails 服务器返回 HTML 而不是 JavaScript
Rails server returning HTML as opposed to JavaScript
我有以下 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
,我的预期是服务器自然会尝试 return JavaScript 和 AJAX响应。
但是,每次单击 link 时,AJAX 响应包含来自名为 users/friends.html.erb
的文件的 HTML,而不是动态呈现的 JavaScript HTML 来自 users/_friends.html.erb
这将是必需的行为。
我处理请求的代码如下:
--路线:
# 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
尝试
"data-type" => "js"
在
之后
remote: true
friends.js.erb
文件在错误的目录中(app/views/ 而不是 app/views/users)。
为了解决这个问题,我 运行 在终端中输入以下内容:
mv app/views/friends.js.erb app/views/users/friends.js.erb
Rails 现在可以找到此模板,因为按照惯例,来自 users 控制器的格式指令指向 app/views/[=18 中的文件=]用户。
我有以下 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
,我的预期是服务器自然会尝试 return JavaScript 和 AJAX响应。
但是,每次单击 link 时,AJAX 响应包含来自名为 users/friends.html.erb
的文件的 HTML,而不是动态呈现的 JavaScript HTML 来自 users/_friends.html.erb
这将是必需的行为。
我处理请求的代码如下:
--路线:
# 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
尝试
"data-type" => "js"
在
之后remote: true
friends.js.erb
文件在错误的目录中(app/views/ 而不是 app/views/users)。
为了解决这个问题,我 运行 在终端中输入以下内容:
mv app/views/friends.js.erb app/views/users/friends.js.erb
Rails 现在可以找到此模板,因为按照惯例,来自 users 控制器的格式指令指向 app/views/[=18 中的文件=]用户。