2016-09-07 8 views
0

私は最初のアプリをコーディングする際に、かなり新しいレールです。
私はユーザーのユーザー名の検索を作成しましたが、それ以降は(acts_as_taggable_on 'gemを使用して)タグ付けシステムを追加しました。これは検索機能に実装したいものです。Rails 4 Search Engine:Multiple Params

私はこれを数回試しましたが、常に引数エラー(1は0、1は2)があります。

あなたがタグのparamsを使用してユーザオブジェクトをターゲットとする方法である:

# Find users with any of the specified tags: 
User.tagged_with(["awesome", "cool"], :any => true, :wild => true) 

ユーザーモデル

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 

ユーザーコントローラー

def index 
    @users = User.search(params[:search]) 
    @tagged_users = User.searchtags(params[:searchtags] 
end 

ユーザーインデックス表示

= 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 

誰かが解決策を見つけて助けてくれることを願っています。ありがとう。

答えて

2

私は確信していませんが、以前は同じ問題を抱えていました。その理由は、 'acts_as_taggable_on'宝石のバージョンがレール版と互換性がないためです。あなたの投稿にこれをコメントとして追加したいのですが、残念ながら私のアカウントではまだ許可されていません。ここで解決策を見つけることができますagged_with(params[:skill]) ArgumentError: wrong number of arguments (given 2, expected 1)

+0

私は実用的な解決策を得ました。あなたの答えは私を助けました! – Gugubaight

+0

奇妙なことですが、 'self.search'に' elsif searchtags none'を追加した場合、引数エラー(0は1)が再び表示されます... – Gugubaight

+0

私はこれを質問としてここに掲載しました:http://stackoverflow.com/questions/39388648/rails-4-error-argumenterror-wrong-of-argumentsの数 – Gugubaight