【发布时间】:2011-04-19 11:08:42
【问题描述】:
我正在尝试做类似的事情
class Event < ActiveRecord::Base
has_many :links, :dependent => :destroy
belongs_to :activity
belongs_to :facility
has_many :infos, :through => :activity
has_many :infos, :through => :facility
accepts_nested_attributes_for :infos
end
但这会导致has_many :infos, :through => :facility,而has_many :infos, :through => :activity 会被忽略。
如何用正确的语法表达?
编辑:
如果我实现了弗拉德的方法然后使用
@events = Event.all(:include => [:facility_infos, :activity_infos], :conditions => ["infos.language_id = ?", 2], :order => :time)
我得到:activity_infos for language_id == 2,但不幸的是我得到了所有语言的:facility_infos!
如何解决?
编辑 2:
这是您要求的输出:
SELECT "events"."id" AS t0_r0, "events"."time" AS t0_r1, "events"."everyday" AS t0_r2, "events"."activity_id" AS t0_r3, "events"."created_at " AS t0_r4, "events"."updated_at" AS t0_r5, "events"."facility_id" AS t0_r6, "events"."home" AS t0_r7, "infos"."id" AS t1_r0, "infos"."title " AS t1_r1, "infos"."description" AS t1_r2, "infos"."location" AS t1_r3, "infos"."language_id" AS t1_r4, "infos"."created_at" AS t1_r5, "infos"."updated_at " AS t1_r6, "infos"."activity_id" AS t1_r7, "infos"."facility_id" AS t1_r8, "infos"."service_id" AS t1_r9, "activity_infos_events"."id" AS t2_r0, "activity_infos_events"."title " AS t2_r1, "activity_infos_events"."description" AS t2_r2, "activity_infos_events"."location" AS t2_r3, "activity_infos_events"."language_id" AS t2_r4, "activity_infos_events"."created_at" AS t2_r5, "activity_infos_events"."updated_at " AS t2_r6, "activity_infos_events"."activity_id" AS t2_r7, "activity_infos_events"."facility_id" AS t2_r8, "activity_infos_events"."service_id" AS t2_ r9 FROM "events" 左外连接 "facilities" ON "events"."facility_id" = "facilities"."id" 左外连接 "infos" ON "infos"."facility_id" = "facility"."id" 左OUTER JOIN "activities" ON "events"."activity_id" = "activities"."id" LEFT OUTER JOIN "infos" "activity_infos_events" ON "activity_infos_events"."activity_id" = "activities"."id" WHERE (infos. language_id = 2) 按时间排序
【问题讨论】:
-
更新了我的帖子。这应该返回一个 sql 查询,以便我们检查发生了什么
标签: ruby-on-rails associations