【发布时间】:2014-03-03 00:14:10
【问题描述】:
在我的应用程序中,用户查看我存储在名为 View 的单独关联表中的 Pin 图。该表有一个 ID、一个 pin_id、一个 user_id 和一个排名。我想找到满足用户未见过的某些标准的 Pin 图。我正在使用 Rails 3.2.13。
这是我的模型关联:
class Pin
has_many :views
has_many :users, :through => :views
class View
belongs_to :pin
belongs_to :user
class User
has_many :pins
has_many :views
has_many :pins, :through => :views
现在我正在这样做,它有效:
pins_controller.rb
b = TRUE
sex = current_user.sex
views = current_user.views
seen = views.map(&:pin_id)
@pins = Pin.find(:first, :conditions => ["sex = ? AND active = ? AND id not in (?)", sex, b, seen])
我认为使用连接通过单个数据库查询来拉取对象会更优雅。但是,我无法让它发挥作用。我已经阅读了一堆不同的 SO 文章,但我无法使用单个查询重现上述内容。我认为上述是环形交叉路口并且有更好的方法是正确的吗?
【问题讨论】:
标签: mysql ruby-on-rails ruby ruby-on-rails-3