Ruby 在 Rails 上:搜索表单
Ruby on Rails : Search form
您好,我正在为我的摩擦应用程序开发一个简单的搜索表单。
我在脚手架生成的现有控制器中创建了一个动作:
(rails g scaffold Product name description:text price:decimal)
调用了 search_products
并且视图调用了 search.html.erb
在搜索视图中,我有 text_field_tag
插入搜索参数的地方(当然还有用于发送参数的提交按钮)
<%= form_tag products_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search]%>
<%= submit_tag "Search" %>
<% end %>
当我按下时,将页面根提交到 products_path,在那里我找到了我搜索的产品列表。
这似乎是我的 search_products
操作中的一种错误,因为我收到此错误:
NoMethodError in ProductsController#index
undefined method `search_products' for #
我post我的控制器:
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
这是我的第一个 rails 应用程序,对于我的愚蠢错误深表歉意。
def self.search_products(search)
if search
where(["name LIKE ?","%#{search}%"])
else
all
end
end
此代码应该在您的模型代码中,而不是控制器中
您好,我正在为我的摩擦应用程序开发一个简单的搜索表单。
我在脚手架生成的现有控制器中创建了一个动作:
(rails g scaffold Product name description:text price:decimal)
调用了 search_products
并且视图调用了 search.html.erb
在搜索视图中,我有 text_field_tag
插入搜索参数的地方(当然还有用于发送参数的提交按钮)
<%= form_tag products_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search]%>
<%= submit_tag "Search" %>
<% end %>
当我按下时,将页面根提交到 products_path,在那里我找到了我搜索的产品列表。
这似乎是我的 search_products
操作中的一种错误,因为我收到此错误:
NoMethodError in ProductsController#index
undefined method `search_products' for #
我post我的控制器:
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
这是我的第一个 rails 应用程序,对于我的愚蠢错误深表歉意。
def self.search_products(search)
if search
where(["name LIKE ?","%#{search}%"])
else
all
end
end
此代码应该在您的模型代码中,而不是控制器中