Ich bin ziemlich neu zu Schienen und im Moment Codierung meiner ersten App.
Ich habe eine Suche nach den Benutzernamen meiner Benutzer erstellt, aber seitdem habe ich ein Tagging-System hinzugefügt (mit 'acts_as_taggable_on' gem), das ich jetzt in der Suchfunktion implementieren möchte.Rails 4 Search Engine: Mehrere Params
Ich habe es schon mehrmals versucht, aber immer einen Argumentfehler (entweder 0 für 1 oder 2 für 1).
Das ist, wie Sie die Benutzerobjekte mit dem Tag params Ziel:
# Find users with any of the specified tags:
User.tagged_with(["awesome", "cool"], :any => true, :wild => true)
Benutzermodell
acts_as_ordered_taggable
# Search
def self.search(search)
if search
where(["username LIKE ?", "%#{search}%"])
else
all
end
end
# Search Tags
def self.searchtags(searchtags)
if searchtags
tagged_with(["#{searchtags}"], :any => true, :wild => true)
else
none
end
end
Benutzer-Controller
def index
@users = User.search(params[:search])
@tagged_users = User.searchtags(params[:searchtags]
end
Benutzer-Übersicht
= form_tag users_path, :method => 'get' do
= text_field_tag :search, params[:search]
= submit_tag "Search"
= form_tag users_path, :method => 'get' do
= text_field_tag :searchtags, params[:searchtags]
= submit_tag "Search Tags"
- @users.each do |user|
= image_tag gravatar_for user if user.use_gravatar == true
= image_tag user.avatar_filename.url if user.use_gravatar == false
%h2= link_to user.username, user
%p= link_to "Favorite", userfavorite_user_path(user, type: "favorite"), method: :get
%p= link_to "Unfavorite", userfavorite_user_path(user, type: "unfavorite"), method: :get
%p= user.tag_list
- @tagged_users.each do |user|
= image_tag gravatar_for user if user.use_gravatar == true
= image_tag user.avatar_filename.url if user.use_gravatar == false
%h2= link_to user.username, user
%p= link_to "Favorite", userfavorite_user_path(user, type: "favorite"), method: :get
%p= link_to "Unfavorite", userfavorite_user_path(user, type: "unfavorite"), method: :get
%p= user.tag_list
Hoffe, dass jemand mir helfen kann, indem ich eine Lösung finde, danke.
Ich habe eine funktionierende Lösung. Deine Antwort hat mir geholfen! – Gugubaight
Sonderbare Sache ist, wenn: wenn ich 'elsif searchtags none' zu' self.search' hinzufüge, erscheint der Argumentfehler (0 für 1) wieder ... – Gugubaight
Ich postete dies als eine Frage hier: http://stackoverflow.com/questions/39388648/rails-4-error-argumentterror-falsche-Anzahl-der-Argumente – Gugubaight