Ruby on rails Rails-简单搜索功能

Ruby on rails Rails-简单搜索功能,ruby-on-rails,Ruby On Rails,我对rails还相当陌生,我正在建立一个在线商店来编写一些rails。我目前正在实现一个简单的搜索功能,并得到一些奇怪的行为,我无法解释 模型方法: def self.search(query) where("title like ?", "%#{query}%") end 控制器方法E: def index if params[:search] @products = Product.search(params[:search]) else @products =

我对rails还相当陌生,我正在建立一个在线商店来编写一些rails。我目前正在实现一个简单的搜索功能,并得到一些奇怪的行为,我无法解释

模型方法:

def self.search(query)
  where("title like ?", "%#{query}%")
end
控制器方法E:

def index
  if params[:search]
    @products = Product.search(params[:search])
  else
    @products = []
    #Only lists available products (in cart counts as available)
    @available_items = Item.where(user_id: nil).select(:product_id).uniq
    @available_items.each do |item|
      @products << item.product
    end
  end
end
搜索表格:

<%= form_tag(products_path, :method => "get", id: "search-form", enforce_utf8: false) do %>
  <%= text_field :search, params[:search], placeholder: "Search..." %>
  <%= submit_tag "Search", :name => nil %>
<% end %>
当我触发搜索时,我没有得到任何结果,url如下所示:

当我从url中删除“%5B%5D”时,一切正常,我得到了结果。“%5B%5D'在URI编码中代表“[]”,但无法确定其来源。任何帮助都将不胜感激

最好的, Paul

查看文本字段和for text\u字段标记帮助器的工作原理:

<%= text_field :search, params[:search], placeholder: "Search..." %>
改为使用文本\字段\标记:

<input type="text" name="search[]" placeholder="Search..." />
<%= text_field_tag :search, params[:search], placeholder: "Search..." %>