gpt4 book ai didi

ruby-on-rails - Ruby on Rails事件记录选择始终返回ID

转载 作者:行者123 更新时间:2023-12-04 06:27:51 25 4
gpt4 key购买 nike

在我的示例ruby应用程序中,像这样的查询

@ip = User.where("id = ?",@user[:user_id]).select('ip').first


退货

{"id":null,"ip":"127.0.0.1"}


而且我不希望它返回id,尽管id为1,但返回的是null。

PS:它将不会返回id:null如果我在select.select('id,ip')中提到id

有什么帮助吗?我只想返回ip。

最佳答案

您误解了select的作用。查看Ruby docs,以更好地了解该方法的使用方式。
如果您要做的只是根据查找带有ip的记录从User模型返回id属性,您所需要做的就是:

User.find(@user[:user_id]).ip

请注意,我使用的是 find而不是 where。由于 id应该始终是唯一值,因此无需使用 wherefirst的组合来获取您要查找的单个记录。


根据您的示例,我假设您的 @user变量是您创建的对象,而不是您的 User模型的实例,这就是为什么您访问 user_id而不只是 id的原因。
但是,如果它是您的 User模型的实例,那么请记住两点:

您将要访问 id,而不是 user_id-并且您也不需要通过 @user[:id]访问它。您可以执行 @user.id
您根本不需要查找记录。如果您已经具有要尝试 Userfind对象,则只需从对象本身获取 ip即可,即 @user.ip

关于ruby-on-rails - Ruby on Rails事件记录选择始终返回ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35977821/

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