Ruby on rails rails数据库查询是activeRecord::Relation的结果

Ruby on rails rails数据库查询是activeRecord::Relation的结果,ruby-on-rails,database,activerecord,spree,Ruby On Rails,Database,Activerecord,Spree,我正在使用Spree Commerce开发我的电子商务网站。当我写作时 self.where("user_id = ?", user_id)** 为了访问数据库,它显示了ActiveRecord::Relation以及我使用 self.where("user_id = ?", user_id).first 它没有归还任何东西。我正在使用 self.where("user_id = ?", user_id).first 查看文件中的Spree::Modelname.actionname,以访

我正在使用Spree Commerce开发我的电子商务网站。当我写作时

self.where("user_id = ?", user_id)**
为了访问数据库,它显示了
ActiveRecord::Relation
以及我使用

self.where("user_id = ?", user_id).first
它没有归还任何东西。我正在使用

self.where("user_id = ?", user_id).first
查看文件中的
Spree::Modelname.actionname
,以访问数据

谁能帮我从rails 3.2中的数据库中获取数据。

。在模型类上调用(…)
将返回一个关系。如果它是一条记录,则可以对其调用
.first
.last
,或
.all
.to_a
。限制(…)
一组记录

如果这不起作用,请确保您正在使用Spree用户类:

Spree.user_class.where("user_id = ?", user_id).first
或:

或Ruby 1.9+哈希语法:

Spree.user_class.where(user_id: user_id).first

这假设Spree的用户类是一个模型,由一个具有“user_id”列的表支持,并且数据库表中有一条记录的user_id等于您传递给该表的user_id。

您确定self是您在执行语句时所认为的吗?我也尝试过将self更改为Spree::Wishlist,但是它也显示了相同的结果。是的,这个查询运行良好。但我实际上是在我的网站中添加了spree愿望列表扩展,我想在主页中生成一个指向愿望列表的链接。因此,当我尝试使用wishlist模型进行相同操作时,它没有显示任何内容。对于wishlist,它看起来应该是
Spree::wishlist.where(:name=>“some wishlist name”)
或按用户id查找wishlist,
Spree::wishlist.joins(Spree.user\u class.table\u name.to\u sym)。其中(Spree.user\u class.table\u name.to\u sym=>{:user\u id=>user\u id}).首先
。可能要用这些值替换所有Spree.user_类和Spree.user_类.table_name.to_sym,以避免代码混乱,除非您正在编写通用扩展名/gem。请确保彻底阅读,在此之前,如果您还没有SQL,请对SQL有一个良好的理解,因为您需要随着时间的推移。