Rails:Association与User一起使用,但不与current_user一起使用

时间:2013-12-20 03:39:07

标签: ruby-on-rails ruby ruby-on-rails-3 postgresql

我有一个奇怪的问题。

我有很多模型和协会可以很好地协同工作但是当我尝试介绍current_user时,我得到了:

/ dashboard上的ActiveRecord :: ConfigurationError 未找到名为“游戏”的消息关联;也许你拼错了?

以下是一些有用的代码:

控制器:

  def index 
    users = current_user.followed_users.collect { |user| user.id }
    @userupdates    = Userupdate.for_users(users, params[:page])
  end

查看:

   <% @userupdates.each do |userupdate| %>
    Things and stuff
   <% end %>

但是当我尝试让页面显示来自follow_users和current_user的内容时,就像这样..

def index 
   users = current_user.followed_users.collect { |user| user.id }
   users.push(current_user.id)
   @userupdates    = Userupdate.for_users(users, params[:page])
end

...我收到上面的错误。

一些相关模型代码:

class Userupdate < ActiveRecord::Base
  belongs_to :user
  belongs_to :game

class User < ActiveRecord::Base
  has_many :userupdates

class Game < ActiveRecord::Base
  has_many :userupdates

1 个答案:

答案 0 :(得分:1)

ActiveRecord::ConfigurationError在rails api中解释如下。

  

在未正确配置关联或用户尝试与has_many或has_and_belongs_to_many关联一起使用偏移和限制时引发。

所以我认为问题是您的关联已配置。您可以再次检查关联,例如模型Userupdate是否有user_idgame_id

问题current_user,也许你应该查看你的查询sql以查看你的includes是否有效。如果有效,它应该在userupdatesusersuserupdatesgames之间进行外部联接,您将看到加载users和{{1}在日志中加载games之后。 userupdates可能是唯一拥有current_user所属userupdates的用户。

我的所有意见,希望这可以提供帮助。