0

私はレール初心者です。私はサンプルアプリケーションでタグ付け可能なactを実装しようとしています。私はtag_listを使用して複数のタグを入力することができますが、それらを検索する問題に直面しています。ActiveRecord ::関連でのact-as-taggable-onの問題

これは私が得たものです。

私はコントローラ&モデルを生成するために足場ユーザーを使用しました。

class CreateUsers < ActiveRecord::Migration 
    def change 
    create_table :users do |t| 
     t.string :name 
     t.text :tags 

     t.timestamps 
    end 
    end 
end 

私のユーザーモデルが

class User < ActiveRecord::Base 
    serialize :tags 
    acts_as_taggable_on :tags 
    scope :by_join_date, order("created_at DESC") 
end 

マイユーザコントローラ

Class UsersController < ApplicationController 
def index 
    @users = User.all 
    @search = User.tagged_with("Tag11") 
end 
... 
... 
... 
end 

である私はまた、宝石をインストールした後、クラスActsAsTaggableOnMigration <のActiveRecord ::移行に変更を加えることはしませんでした。私の見解では

私が交換:でタグ:私の_formでtag_list、インデックス&ショーのhtmlファイル

<div class="field"> 
<%= f.label :tags %><br /> 
<%= f.text_field :tag_list %> 
</div> 

をこれは私がブラウザに何を得る

view

でもらえますしてください私がどこで間違いを犯しているのか理解しやすくなりますか?

ありがとうございます。

+1

ビューで@searchを使って何をやっていますか? –

答えて

1

私は推測しています(まだ別のビューからコードを提供していないため)。 @search = User.tagged_with("Tag11")返されるのはタグ名ではなく実際のタグオブジェクトです。あなたのビューに<%= @search %>がある場合、それは動作しません。

<%= @search.map(&:name).join(', ') %> 

などが必要です。

+1

ありがとうございました!出来た!もし私がTag12をクリックすると言うことができます..どのようにTag12にタグ付けされているすべての関連ユーザーを取得するには? <%= @ search.map(&:name).join( '、')%>に参加することはうまくいきますが、それらをリストに入れる方法はありますか?ありがとう.. – gkolan

+0

彼らはすでに配列です。リストが必要な場合は、次のようにしてください:

    <%@ search.each do | tag | %>
  • <%= tag.name%>
  • <% end %>