代码之家  ›  专栏  ›  技术社区  ›  DGM

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

  •  0
  • DGM  · 技术社区  · 15 年前

    给出一个类似的模型:

    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_id , household_id organization_id

    我需要风景 link_to "Return", ... 返回到我们从中找到电话号码的正确资源。我该怎么做?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Ben    15 年前

    如果您使用的是嵌套资源,则需要在PhoneNumberController上设置父对象的before筛选器,这样您就可以 @parent.phone_numbers.build(...) 正确的?同时(过滤前),设置 @parent_path ( organization_path , household_path …)您可以在视图中链接到。

    如果您要将电话号码添加到每一项(组织、家庭…)中,请使用 :polymorphic => true 而不是 has_many :through ,只需在PhoneNumbersController中设置@parent即可。 before_filter 并且做 polymorphic_path(@parent) 相反。