查找具有多种父类型的嵌套资源的父级

时间:2009-11-18 16:57:04

标签: ruby-on-rails

给出如下模型:

class PhoneNumber < ActiveRecord::Base
  has_many :personal_phone_numbers
  has_many :household_phone_numbers
  has_many :organization_phones

  has_many :people, :through => :personal_phone_numbers
  has_many :households, :through => :household_phone_numbers
  has_many :organizations, :through => :organization_phones
end

在查看电话号码时,我可能会将其视为嵌套资源,因此控制器将具有person_idhousehold_id或{organization_id之一的参数项。 {1}}

我需要视图让link_to "Return", ...返回到我们来自电话号码的正确资源。我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果您正在使用嵌套资源,那么您需要在PhoneNumberController上设置一个前置过滤器来设置父对象,这样您就可以@parent.phone_numbers.build(...)了吗?同时(before_filter),设置@parent_pathorganization_pathhousehold_path ...),您可以在视图中将其链接到。

如果您使用:polymorphic => true而不是has_many :through为这些内容(组织,家庭......)添加电话号码,您可以简单地选择您将要设置的@parent在PhoneNumbersController before_filter中,而是polymorphic_path(@parent)