Dav*_*age 13 ruby-on-rails ruby-on-rails-3
我的应用程序中有一个搜索页面,其中有一个ajax搜索表单.搜索表单正常工作,将参数传递给模型以过滤搜索,模型返回结果集合.搜索提交后,@results将在页面上呈现.然后每个@result都有一个指向它的动作的链接,例如:
<%=link_to "Message", message_user_path(:id => user.id), :remote => true%>
Run Code Online (Sandbox Code Playgroud)
控制器中的此操作位于:
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
Run Code Online (Sandbox Code Playgroud)
这会响应message.js.erb,它会触发一个消息传递面板,向用户弹出一条消息.所有这一切都正常,检查日志我看到发送的正确的get请求,以及正在处理的正确格式:
Started GET "/users/3/message"
Processing by UsersController#message as JS
Run Code Online (Sandbox Code Playgroud)
但是,如果我刷新页面并尝试单击之前工作的相同链接,则会收到错误模板缺失的错误.检查日志,我看到现在发送了两个请求,首先是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
Run Code Online (Sandbox Code Playgroud)
html请求抛出了丢失的模板错误.有谁知道为什么刷新页面导致rails试图用html请求响应远程链接?
编辑:routes.rb
resources :students do
member do
get 'message'
end
end
Run Code Online (Sandbox Code Playgroud)
GMA*_*GMA 25
你app/assets/javascripts/application.js含有吗?
//= require jquery
//= require jquery_ujs
Run Code Online (Sandbox Code Playgroud)
?
你的erb包含<%= javascript_include_tag "application" %>?
我只是在为HOURS这样的问题挣扎,并且这两点的最后一点修正了它; 我看到了其他一些问题中提到的第一点,所以我在这里重复一遍.
希望有所帮助.
(信用到期时的信用)
对我来说什么求解器正在添加:format =>“ js”
因此,在您的情况下:
<%=link_to "Message", message_user_path(:id => user.id, :format => "js"), :remote => true %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13798 次 |
| 最近记录: |