こんにちは、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 アプリケーションの 1 つであり、愚かなエラーで申し訳ありません。