如何找到ID,然后选择几个列在轨道上的记录,红宝石?(How to find a record by

2019-10-23 06:47发布

我有一个User具有所有与数据库中的现有数据查询的领域模型。 当我执行下面的查询 -

@user = User.find(4, :select => 'user_fname, user_lname')

轨会因上述线以下错误

找不到所有用户 'USER_ID':(4,{:选择=> “user_fname,user_lname”})(发现1分的结果,但在寻找2)

什么错?

Answer 1:

你可以试试这个。 我希望这将有所帮助。

@user = User.where("id = ?", 4).select( "user_fname, user_lname")


Answer 2:

轨道4:勇气作为快捷方式,而无需加载了一系列的记录只是抓住你想要的属性来选择一个或多个属性。

尝试:

> User.where(id: 4).pluck(:user_fname , :user_lname).first
#=> ["John", "Smith"] # this is just sample of output


Answer 3:

您正在使用#find不正确。 它采用的ID作为参数,而不是SQL。 它尝试使用第二个参数作为ID,这显然是行不通的。

http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find



Answer 4:

find只有通过ID查找记录。 你可以通过在ID的数组,但它没有考虑任何选项。 因此,它认为你是通过哈希是一个ID,它的炸弹,因为它无法找到具有该ID的记录。 我想你想的是一样的东西:

@user = User.find(4)
fname = @user.fname
lname = @user.lname


文章来源: How to find a record by id and select few columns, ruby on rails?