Реализация тегов в Rails: как ссылаться на несколько элементов с помощью одного тега?

Я пишу движок блога на рельсах и установил модель тегов и модель сообщений, которые имеют отношение 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

Заранее благодарим и приносим свои извинения за избыточность или неправильную формулировку.

5
задан Chazu 11 August 2011 в 19:04
поделиться