2009-07-21 3 views
2

が、私は最善の解決策を見つけようとしています彼が興味を持っているキーワード(複数のコンテキスト)を保存する。ベストプラクティス: - :私はusermodelを持っており、ユーザーはできるはずです</p> <p>複数のカテゴリ、それのための最高のプラグイン(行為としてタグ付けできる、...、ツリーとして機能)

F.e.

User-interessts: 

Sports: Checkbox(CB) fishing, CB Skyying, CB Tennis, CB Soccer 

Music: CB Metal, CB Techno, CB Folk, CB Charts, ... 

のように...

ユーザーが自分の選択を保存した後、私は次のような検索-の機能を提供したいと思います:

find by main category(input: sports, music,....) 

find by keyword (input: sports, music, metal, fishing,....) 

find by most viewed (show data with the most associated users) 

を、私は自動生成されているしたいと思いますタグクラウド(acts_as_taggable_onが提供するような)

リストの管理が簡単であればクールだと思います。たとえば、タグはメインとサブカテゴリとして使用できませんtag_contextsで動作します)...?

私はこれをact_as_treeで構築しようとしましたが、これは限定されていませんでした。それから私はtaggableとしての行為でそれを試しましたが、私はタグモデル(私のモデルフォルダにtag.rbファイルはありません)にアクセスする方法を取得しません。

私を助けることができますか?あなたはもっと良い解決策を持っていますか?ほぼ正確に"acts-as-taggable-on"が提供するもののように聞こえる

おかげ

+0

tag.rbファイルは、プラグインファイルとともに配置されます。私はレールで作業して以来、しばらくしていたので、今度はコアの一部である可能性が高いですが、以前はベンダー/プラグイン/ acts_as_taggable/modelsやそれに近いものでした。 – mveerman

+0

ええと...しかし、このクラスをどのように拡張できますか? – Lichtamberg

答えて

4

。 readmeファイルから

 
class User < ActiveRecord::Base 
    acts_as_taggable_on :tags, :skills, :interests 
end 

@user = User.new(:name => "Bobby") 
@user.tag_list = "awesome, slick, hefty"  # this should be familiar 
@user.skill_list = "joking, clowning, boxing" # but you can do it for any context! 
@user.skill_list # => ["joking","clowning","boxing"] as TagList 
@user.save 

@user.tags # => [<Tag name:"awesome">,%lt;Tag name:"slick">,<Tag name:"hefty">] 
@user.skills # => [<Tag name:"joking">,<Tag name:"clowning">,<Tag name:"boxing">] 

# example finds: 
User.tagged_with("awesome", :on => :tags) # => [@user] 
User.tagged_with("awesome", :on => :skills) # => [] 
1

注目すべきは、あなたがオールウェイズ以下を使用してtag.rbを得ることができるということです。

<% ActsAsTaggableOn::Tag.example_method_on_class %>