我有一个User
具有所有与数据库中的现有数据查询的领域模型。 当我执行下面的查询 -
@user = User.find(4, :select => 'user_fname, user_lname')
轨会因上述线以下错误
找不到所有用户 'USER_ID':(4,{:选择=> “user_fname,user_lname”})(发现1分的结果,但在寻找2)
什么错?
我有一个User
具有所有与数据库中的现有数据查询的领域模型。 当我执行下面的查询 -
@user = User.find(4, :select => 'user_fname, user_lname')
轨会因上述线以下错误
找不到所有用户 'USER_ID':(4,{:选择=> “user_fname,user_lname”})(发现1分的结果,但在寻找2)
什么错?
你可以试试这个。 我希望这将有所帮助。
@user = User.where("id = ?", 4).select( "user_fname, user_lname")
轨道4:用勇气作为快捷方式,而无需加载了一系列的记录只是抓住你想要的属性来选择一个或多个属性。
尝试:
> User.where(id: 4).pluck(:user_fname , :user_lname).first
#=> ["John", "Smith"] # this is just sample of output
您正在使用#find
不正确。 它采用的ID作为参数,而不是SQL。 它尝试使用第二个参数作为ID,这显然是行不通的。
http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find
find
只有通过ID查找记录。 你可以通过在ID的数组,但它没有考虑任何选项。 因此,它认为你是通过哈希是一个ID,它的炸弹,因为它无法找到具有该ID的记录。 我想你想的是一样的东西:
@user = User.find(4)
fname = @user.fname
lname = @user.lname