我正在尝试设置一个搜索字段,该搜索字段将作为用户类型进行搜索(我正在努力转换使用Filterific gem,因为它不支持API' s) 我的表单有效,所以当点击提交按钮时,它会加载javascript而不是加载新页面 我的观点:
<%= form_tag(search_items_path, method: 'post', remote: true, :authenticity_token => true) do %>
<%= text_field_tag 'search_query', nil, placeholder: 'search item name', onkeyup: "$(this).parent('form').submit();" %>
<%= submit_tag "Search" %>
<% end %>
路线:
post "/search_items" => 'items#search_items'
控制器(目前仅用于测试目的的过滤器)
def search_items
puts params
@items = Item.order('display_name DESC').paginate(:page => 1)
respond_to do |format|
format.js
end
end
我有两个不同的问题。第一个是在我将:authenticity_token => true
添加到form_tag之前,每当我输入任何正在加载另一个页面并给我ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
的内容时
修复后,它现在加载一个新的页面http://localhost:3000/search_items
,由于控制器不起作用
基本上我无法使用onkeyup来使用遥控器:true。我发现了几个堆栈溢出问题,但似乎所有这些问题都与上述设置有关
我在ruby 2.1.2和rails 4.2.0上
更多信息:
比较日志条目
单击提交按钮时:
Started POST "/search_items" for 127.0.0.1 at 2016-02-14 23:01:40 -0500
Processing by ItemsController#search_items as JS
Parameters: {"utf8"=>"✓", "authenticity_token"=>"DIzeHBdHOY3TWXU5JEeND65+OwvmqygXHLLfIyEwO9BxuEKL/OyhAdiwSrXiO4opt57Qp6ajJB2rxxmCGWgOvQ==", "search_query"=>"ab", "commit"=>"Search"}
输入时:
Started POST "/search_items" for 127.0.0.1 at 2016-02-14 23:03:04 -0500
Processing by ItemsController#search_items as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"DIzeHBdHOY3TWXU5JEeND65+OwvmqygXHLLfIyEwO9BxuEKL/OyhAdiwSrXiO4opt57Qp6ajJB2rxxmCGWgOvQ==", "search_query"=>"abc"}