您好,我正在为我的 rub 应用程序开发一个简单的搜索表单。
我在脚手架生成的现有控制器中创建了一个动作:
(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
操作中的一种错误,因为我收到了这个错误:
ProductsController#index 中的 NoMethodError
未定义的方法 `search_products' 用于#
我发布我的控制器:
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 应用程序之一,很抱歉我的愚蠢错误。