gpt4 book ai didi

ruby-on-rails - `where` 取 `true` 或 `false`

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:00 24 4
gpt4 key购买 nike

我正在为本地狗收养创建一个“match.com”风格的应用程序,用户或狗可以在其中创建个人资料。在每个配置文件中,都有 bool 字段。我想在狗配置文件中显示具有相同 true 值的正确狗与用户配置文件中的相应 bool 字段。在示例中,如果 Dog.kids_under_10User.profile.kids_under_10 匹配,则显示狗。我可以使用 StringInteger(10)来完成此操作,但我正在尝试学习编写代码的最佳方式。

我最终会传递额外的参数,但我认为一旦我理解了如何使下面的示例起作用,我应该能够使用相同的逻辑根据需要简单地添加参数。

Controller :

@user = current_user.profile
@dogs = Dog.by_profile(params[@user.kids_under_10])

型号:

def self.by_profile(user_profile)
Dog.where('kids_under_10 = ?', user_profile )
end

最佳答案

你的@dogs 任务看起来像这样

@dogs = Dog.where(kids_under_10: @user.kids_under_10)

不需要您的 by_profile 类方法。


如果你想保留类方法,你的 Controller 看起来像这样

@user = current_user.profile
@dogs = Dog.by_profile(@user)

和你模型的类方法,像这样

def self.by_profile(user_profile)
return [] if user_profile.nil?
Dog.where(kids_under_10: user_profile.kids_under_10)
end

关于ruby-on-rails - `where` 取 `true` 或 `false`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13813474/

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