0

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

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

用于访问它正在显示的数据库ActiveRecord::Relation以及我使用时

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

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

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

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

4

1 回答 1

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。

于 2013-05-29T14:43:50.203 回答