私は最初のアプリをコーディングする際に、かなり新しいレールです。
私はユーザーのユーザー名の検索を作成しましたが、それ以降は(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
誰かが解決策を見つけて助けてくれることを願っています。ありがとう。
私は実用的な解決策を得ました。あなたの答えは私を助けました! – Gugubaight
奇妙なことですが、 'self.search'に' elsif searchtags none'を追加した場合、引数エラー(0は1)が再び表示されます... – Gugubaight
私はこれを質問としてここに掲載しました:http://stackoverflow.com/questions/39388648/rails-4-error-argumenterror-wrong-of-argumentsの数 – Gugubaight