gpt4 book ai didi

ruby-on-rails - Rails4 has_many 通过带参数

转载 作者:行者123 更新时间:2023-12-02 03:33:36 25 4
gpt4 key购买 nike

我有一个 has_many through关联如下:

has_many :bookmarks, -> {where('actions.bookmark=true')},
:through => :actions,
:source => :object

我想做的是扩展上面的内容以传递已添加书签的对象的类别。类似于以下内容:

has_many :bookmarks, -> (category) {where('actions.bookmark=true and objects.category=?', category)},
:through => :actions,
:source => :object

我希望它能让我进行诸如 user.bookmarks("papers") 之类的查询.但是,当我尝试以上操作时,category取值 #<User:0x000001017f2090> (基本上是上面调用中的 user)而且我似乎无法用简单的字符串调用关联。

关于如何实现这一点有什么建议吗?非常感谢。

最佳答案

我不认为这可以在 has_many 调用中实现。我只是在我的 User 类中定义一个实例方法来获得该功能:

def bookmarks_for_category(category)
bookmarks.includes(:objects).where('objects.category = ?', category)
end

不确定这个方法的实现,但关键是我不认为你可以有一个接受参数的has_many

您可以查看的另一件事是 scopes .在这种情况下,您可能希望在 Bookmark 模型上定义一个 for_category 范围,允许类似以下内容:

user.bookmarks.for_category('papers')

关于ruby-on-rails - Rails4 has_many 通过带参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25173236/

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