【发布时间】:2012-03-30 18:48:27
【问题描述】:
一种 ruby-noob 活动记录查询问题:
Magazine
has_many :subscriptions
User
has_many :subscriptions
Subscription
belongs_to :user
belongs_to :magazine
在控制器中,我想有效地询问 current_user 是否订阅了 a_magazine。我觉得应该是这样的……
Subscription.where("user_id = ? and magazine_id = ?", current_user.id, a_magazine.id).count > 0
a) 看起来对吗? b) 是否有更有效的方法(假设 FK 上的索引) c) 在风格上,是否有更可接受或更简洁的方法?
提前谢谢...
【问题讨论】:
-
B) 假设 FK 上的索引这个查询应该非常有效(并且可能是最有效的)
-
嗨@Aldo'xoen'Giambelluca 实际上在我的
has_many through协会中我也有类似的情况,我现在正在使用这个 current_customer .id).任何? %> 在渲染 Products#index 视图时,了解哪些列出的产品在记录的Customer愿望清单中并突出显示它们。但我担心的是性能;当产品列表很大时,这是一个好方法吗?还是有另一个更有效的查询不影响性能?
标签: sql ruby-on-rails ruby activerecord