rails数据库查询导致activeRecord :: Relation

时间:2013-05-29 14:24:55

标签: ruby-on-rails database activerecord spree

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

self.where("user_id = ?", user_id)**

用于访问数据库,它显示ActiveRecord::Relation以及我何时使用

self.where("user_id = ?", user_id).first

它没有返回任何东西。我正在使用

Spree::Modelname.actionname在视图文件中访问数据。

任何人都可以帮我从rails 3.2中获取数据库中的数据。

1 个答案:

答案 0 :(得分:0)

调用模型类的

.where(...)将返回一个关系。如果是单条记录,则为.first.last,如果是一条记录,则为.all.to_a.limit(...)

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

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

或:

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。