Я пишу движок блога на рельсах и установил модель тегов и модель сообщений, которые имеют отношение have_and_belongs_to_many. Добавление тегов работает нормально, проблема возникает, когда поиск всех сообщений с определенным тегом:
Если я добавлю тег "test" к сообщению A, а затем добавлю тег "test" к сообщению B, появятся два объекта тега, оба с именем "test", но с разными идентификаторами, оба ссылаются на разные сообщения. Теперь, если у меня есть действие контроллера indexTagPosts, которое принимает параметр "tag" и находит все сообщения с этим t ag, он вернет только одно сообщение, поскольку другой тег имеет другой идентификатор и на самом деле не связан. Должен ли я каким-то образом ограничить добавление новых тегов, или я должен по-другому манипулировать способом извлечения всех соответствующих тегов?
Вот действие контроллера, которое должно захватить все соответствующие сообщения на основе параметра 'tag':
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
Заранее благодарим и приносим свои извинения за избыточность или неправильную формулировку.