Rails远程表单onkeyup for text_field_tag

时间:2016-02-14 23:58:42

标签: javascript jquery ruby-on-rails ruby

我正在尝试设置一个搜索字段,该搜索字段将作为用户类型进行搜索(我正在努力转换使用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"}

0 个答案:

没有答案