Ilnar25
@Ilnar25

Как получить посты по тегам?

Имею 2 модели связанные через третью связью has_many :through

create_table "posts", force: :cascade do |t|
t.string "title"
t.text "body"
end

create_table "tags", force: :cascade do |t|
t.string "name"
end

create_table "tags_associations", force: :cascade do |t|
t.integer "post_id"
t.integer "tag_id"
end
Как должен выглядеть запрос на получение всех постов по определенному тегу получая вот такой парамс. Parameters: {"tag"=>"3"}.
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
Ilnar25
@Ilnar25 Автор вопроса
@posts = Post.posts_for_tag(params[:tag])

scope :posts_for_tag, -> (tag) do
includes(:tags_associations, :tags)
.joins(:tags)
.where("tags_associations.tag_id = ?", tag )
end

решил сам правильно или неправильно но вроде работает)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы