1

私は Rails 3.2.5 で自分用のブログを作成してtagsおり、categories適切に処理しようとしています。ユーザーがlink_toタグ名をクリックして、同じタグを持つ他のエントリに移動し、URL をにできるようにしたいと考えています'root.com/tag/selected-tag'。カテゴリについては、URL が'root.com/category/selected-category'. 私はすでにこれを開始しておりacts_as_taggable_on、タグ付けとカテゴリの単純化に使用しtext inputています(select input必要なカテゴリを決定すると になります)。

これをどのように処理しますか?tagsとのコントローラーを作成しようとしましたがcategories、それぞれにアクションのみがありindexます。私が持っているため'tags#index'

@entries = Entry.order('created_at desc').tagged_with(params[:format]).paginate(:page => params[:page], :per_page => 10)

そして、私が持っている各tagのリンクについて:

= link_to tag, tag_path(tag)

何らかの理由でtagが として渡されているため、:formatを取得しましたtagged_with(params[:format])

私は次のように'categories#index'定義しました:

@entries = Entry.order('created_at desc').where(:category => params[:format]).paginate(:page => params[:page], :per_page => 10)

categoryリンクは次のとおりです。

  - entry.tag_list.each do |tag|
    = link_to tag, tag_path(tag)

tagsとがURLcategoryとして渡されているため、と として表示されます。:format'root.com/tag.selected-tag''root.com/category.selected-category'

URL がandとして表示されるようにするには、どうすれば適切に処理tagsできますか?categories'root.com/tag/selected-tag''root.com/category/selected-category'

4

1 に答える 1

4

以下はおそらくあなたが望むことをするでしょう:

あなたのルートで: match 'tag/:tag' => 'tags#index', :as => :tag

次に、誰かがexample.com/tag/some-tag-hereにアクセスすると、次の方法でコントローラー内のタグにアクセスできます。 params[:tag]

次のようにして、ルートにリンクできます。

link_to tag, tag_path(:tag => tag)

同様のソリューションは、カテゴリでも機能するはずです。

于 2012-07-28T21:32:41.100 に答える