私はレールにブログエンジンを書き、have_and_belongs_to_many関係を持つタグモデルとポストモデルを設定しました。タグの追加がうまくいけば、特定のタグを含むすべての投稿を検索するときに問題が発生します。Railsでのタグの実装:1つのタグで複数のアイテムを参照するには?
投稿Aにタグ "test"を追加し、投稿Bにタグ "test"を追加すると、 "test"という名前で異なるIDを持ち、両方とも異なる投稿を参照しています。ここで、パラメータ "tag"を取るコントローラアクションindexTagPostsがあり、そのタグを持つすべてのポストを見つけたら、他のタグが異なるIDを持っていて本当に関連付けられていないので、1つのポストしか返しません。どういうわけか新しいタグの追加を制限する必要がありますか、または関連するすべてのタグを異なる方法で操作する方法を操作する必要がありますか?ここで
は、パラメータ「タグ」に基づいて、関連するすべての記事をつかむことになっているコントローラのアクションです:
def indexTagPosts
@tag = Tag.find(params[:tag])
@posts = @tag.posts.all
end
そしてここでは、タグを保存するアクションです:
def create
@post = Post.find(params[:post_id])
@tag = @post.tags.create(params[:tag])
respond_to do |format|
if @tag.save
format.html { redirect_to edit_post_path(@post),:notice => "Success" }
end
end
end
感謝冗長性や悪い言い訳のためにお詫び申し上げます。
ありがとう:
一般的に、あなたが好きな分離器を使用してタグを検索して割り当てるためのユーティリティメソッドが含まれるようにPostモデルを進化させます。各タグをTagモデルの別のインスタンスとして実装しようとすると、どうすればよいのか分かりません。 – Chazu
通常、タグ・モデルを持つポイントは、タグ付きのすべてのものを見つけることができるためです。各郵便ごとに異なるタグを持たせることは、その目的を打ち負かします。 – tadman