Je suis en train d'apprendre la recherche avancée dans un tutoriel où l'utilisateur peut trouver des articles en fonction de la catégorie. Mais en quelque sorte ma page avancée me donne cette erreur:Rails 4 ArgumentError - mauvais nombre d'arguments
ArgumentError in Searches#new Showing app/views/searches/new.html.haml where line #10 raised:
wrong number of arguments (3 for 1..2)
La ligne sur laquelle je reçois l'erreur est:
= s.text_field :category, options_for_select(@categories), :include_blank => true
Le fichier ci-dessus est new.html.haml (ligne 10). Voici les recherches controller.rb, Je pense que le @categories
dans la méthode new
n'est pas correct.
class SearchesController < ApplicationController
def new
@search = Search.new
@categories = Idea.uniq.pluck(:category)
end
def create
@search = Search.create(search_params)
redirect_to @search
end
def show
@search = Search.find(params[:idea_id])
end
private
def search_params
params.require(:search).permit(:keywords, :category)
end
end
Et mon model.rb
class Search < ActiveRecord::Base
def search_ideas
ideas = Idea.all
ideas = ideas.where(["title LIKE ?","%#{keywords}%"]) if keywords.present?
ideas = ideas.where(["category LIKE ?","%#{category}%"]) if category.present?
return ideas
end
end
J'ai essayé d'utiliser collection_select
au lieu de s.text_field
mais il me donne toujours cette erreur.