Ruby 最近查看的资源的Rails ActiveRecord查询

Ruby 最近查看的资源的Rails ActiveRecord查询,ruby,database-design,activerecord,ruby-on-rails-3.2,Ruby,Database Design,Activerecord,Ruby On Rails 3.2,我最近制作了以下模型: class User < ActiveRecord::Base has_many :resources has_many :resource_views, :through => :user_resource_views, :source => 'Resource' end class Resource < ActiveRecord::Base belongs_to :user has_many :resource_views,

我最近制作了以下模型:

class User < ActiveRecord::Base
  has_many :resources
  has_many :resource_views, :through => :user_resource_views, :source => 'Resource'
end

class Resource < ActiveRecord::Base
  belongs_to :user
  has_many :resource_views, :through => :user_resource_views, :source => 'Resource'
end

class UserResourceView < ActiveRecord::Base
  attr_accessible :resource_id, :user_id
  belongs_to :resource
  belongs_to :user_id
end
。。。但是,然后由创建的顺序,嗯


我会在一天中定期添加进度更新,直到我弄明白为止。

鉴于您使用的是Rails 3.x,您需要的可能是:

class User < ActiveRecord::Base
  has_many :resources
  has_many :resource_views, :class_name => 'UserResourceView'
  has_many :viewed_resources, :through => :resource_views, :source => :resource

  def recently_viewed_resources
    viewed_resources.order('user_resource_views.created_at DESC')
  end
end

class Resource < ActiveRecord::Base
  belongs_to :user
  has_many :resource_views, :class_name => 'UserResourceView'
end

class UserResourceView < ActiveRecord::Base
  attr_accessible :resource_id, :user_id
  belongs_to :resource
  belongs_to :user_id
end

您使用的是什么版本的Rails?
find(:all,:order=>'created_at')
看起来有点像Rails 2.x?Yikes,所以我使用的是3.2.11。我刚刚开始熟悉最佳实践,刚刚注意到我混淆了协会的名称。修好了!想想看,这并不是你想要的方式。如果没有测试的可能性,很难想出一个好的解决方案;)我正在考虑更多,并将编辑答案。
class User < ActiveRecord::Base
  has_many :resources
  has_many :resource_views, :class_name => 'UserResourceView'
  has_many :viewed_resources, :through => :resource_views, :source => :resource

  def recently_viewed_resources
    viewed_resources.order('user_resource_views.created_at DESC')
  end
end

class Resource < ActiveRecord::Base
  belongs_to :user
  has_many :resource_views, :class_name => 'UserResourceView'
end

class UserResourceView < ActiveRecord::Base
  attr_accessible :resource_id, :user_id
  belongs_to :resource
  belongs_to :user_id
end
current_user.recently_viewed_resources