ruby-on-rails - rails : How to use "joins" in sql query for a has_one association

标签 ruby-on-rails ruby-on-rails-3

我有一个用户模型和一个配置文件模型。每个用户都有一个个人资料。该个人资料具有城市属性。现在,我希望用户 Controller 的索引操作能够拉取与 current_user 具有相同城市的所有用户。所以我在 Controller 中有这样的代码:

def index @users = User.same_city_as(current_user).paginate :page => params[:page], :per_page => 10 end

我的用户模型中也有这个:

scope :same_city_as, lambda { |user| joins(:profile).where(:profile => {:city => user.profile.city} ) }

这不起作用。我收到此错误““PGError:错误:缺少表“配置文件”的 FROM 子句条目”。

最佳答案

您需要将 where 子句中的 :profile 设为复数。

 joins(:profile).where(:profiles => {:city => user.profile.city})

关于ruby-on-rails - rails : How to use "joins" in sql query for a has_one association,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448435/

相关文章:

ruby-on-rails - Ruby BigDecimal 健全性检查( float newb)

ruby-on-rails - Rails 3 中奇怪的 DoubleRenderError

javascript - 如何使用 JavaScript、Ruby on Rails 禁用浏览器后退按钮?

mysql - ActiveRecord多关联查询

ruby-on-rails - 按创建天数分组_At

ruby-on-rails - 在Rails中将Carrierwave附件编码为base64

ruby-on-rails - 在亚马逊 EC2 上使用 capistrano 部署到生产环境时, Assets 不会预编译

ruby-on-rails-3 - 如何避免将 rails 3 应用程序保存在 development.log 中?

ruby-on-rails-3 - Rails 3.2 Heroku PG 错误 - 'operator does not exist: integer == integer'

ruby-on-rails - Ruby on Rails 重定向 www.到非 www 版本的网站