gpt4 book ai didi

ruby-on-rails - 如何在 has_scope 中使用acts-as-taggable-on?

转载 作者:行者123 更新时间:2023-12-04 05:02:09 27 4
gpt4 key购买 nike

我正在构建一个返回帖子列表的 API (localhost:3000/api/v1/posts):

{
"tags": [
{
"id": 1,
"name": "Tag 1"
},
{
"id": 2,
"name": "Tag 2"
},

],
"posts": [
{
"id": 1,
"title": "Post 1",
"body": "Lorem ipsum dolor sit amet.",
"tag_ids": [
1
]
},
{
"id": 2,
"title": "Post 2",
"body": "Lorem ipsum dolor sit amet.",
"tag_ids": [
2
]
},

]
}

这些帖子使用 标记作为可标记的行为 gem 。我希望能够使用 根据这些标签过滤它们。 has_scope gem (localhost:3000/api/v1/posts?tag_id=1):
{
"tags": [
{
"id": 1,
"name": "Tag 1"
}
],
"posts": [
{
"id": 1,
"title": "Post 1",
"body": "Lorem ipsum dolor sit amet.",
"tag_ids": [
1
]
}
]
}

但我不知道如何设置 by_tag_id范围在我的模型中,因为作为可标记的文档只解释了 how to find objects基于它们的标签名称(使用 tagged_with() 方法)。

预先感谢您的帮助! ;-)

大卫

最佳答案

对于那些感兴趣的人,我解决了这样的问题……这是我的 Post 模型:

class Post < ActiveRecord::Base
attr_accessible :title, :body, :tag_list

# Alias for acts_as_taggable_on :tags
acts_as_taggable

# Named scope which returns posts whose tags have a specific ID
scope :tagged_with_id, lambda { |tag_id| joins(:taggings).where(:taggings => {:tag_id => tag_id}) }
end

还有我的帖子 Controller :
class PostsController < ApplicationController
has_scope :tagged_with_id

def index
@posts = apply_scopes(Post).all

render :json => @posts
end
end

关于ruby-on-rails - 如何在 has_scope 中使用acts-as-taggable-on?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16020250/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com