简体   繁体   中英

Ruby on Rails : Search form

Hello I'm developing a simple search form for my rub application.

I've created an action in an existing controller generated by a scaffold:

(rails g scaffold Product name description:text price:decimal)

called search_products and a view called search.html.erb

in the search view I've got the text_field_tag where I insert the parameters for the search (and of course a submit button to send them)

<%= form_tag products_path, :method => 'get' do %>
 <%= text_field_tag :search, params[:search]%>
 <%= submit_tag "Search" %> 
<% end %>

when i press submit the page root to the products_path where i found the list of my searched products.

It seems to be a sort of error in my search_products action because I receive this error:

NoMethodError in ProductsController#index

undefined method `search_products' for #

I post my controller:

def self.search_products(search)
    if search
      where(["name LIKE ?","%#{search}%"])
    else
      all 
    end
  end

  # GET /products
  # GET /products.json
  def index
    @products = Product.search_products(params[:search])
  end

This is one of my first rails applications so sorry for my dumb errors.

 def self.search_products(search)
   if search
     where(["name LIKE ?","%#{search}%"])
   else
     all 
   end
 end

This code is supposed to be in your model code, not controller

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM