gpt4 book ai didi

ruby-on-rails - Rails link_to 与远程 : true processing html instead of js after page refresh

转载 作者:行者123 更新时间:2023-12-03 23:12:35 24 4
gpt4 key购买 nike

我的应用程序中有一个搜索页面,其中有一个 ajax 搜索表单。搜索表单正常工作,将参数传递给模型以过滤搜索,并且模型返回结果集合。搜索提交后,@results 会呈现在页面上。然后每个@result 都有一个指向它的操作的链接,例如:

<%=link_to "Message", message_user_path(:id => user.id), :remote => true%>

Controller 中的此操作在哪里:
respond_to :js, :html
def message
@user_id = params[:id]
@user = User.find_by_id(@user_id)
respond_to do |format|
format.html
format.js
end
end

这会以 message.js.erb 响应,这会触发消息面板向用户弹出一条消息。所有这些都正常工作,检查日志我看到发送了正确的获取请求,并且正在处理正确的格式:
Started GET "/users/3/message"
Processing by UsersController#message as JS

但是,如果我刷新页面并尝试单击之前工作的相同链接,则会收到错误模板缺失。检查日志,我看到现在发送了两个请求,第一个是 html,然后是相同的 js 请求。
Started GET "/users/4/message"
Processing by StudentsController#message as HTML
...
Completed 406 Not Acceptable in 3ms (ActiveRecord: 1.0ms)

Started GET "/users/4/message"
Processing by StudentsController#message as JS

html 请求抛出缺少模板错误。有谁知道为什么刷新页面会导致 rails 尝试使用对远程链接的 html 请求进行响应?
编辑:routes.rb
resources :students do
member do
get 'message'
end
end

最佳答案

您的 app/assets/javascripts/application.js包含

//= require jquery
//= require jquery_ujs

?

并且您的 erb 包含 <%= javascript_include_tag "application" %> ?

我只是在 HOURS 上为这样的问题苦苦挣扎,而这两点中的最后一点修复了它;我在其他一些问题中看到了第一点,所以我会在这里重复一遍。

希望有帮助。

( Credit where credit's due )

关于ruby-on-rails - Rails link_to 与远程 : true processing html instead of js after page refresh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13358088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com