【问题标题】:active_admin/formtastic ignoring polymorphic associationsactive_admin/formtastic 忽略多态关联
【发布时间】:2011-11-24 17:47:28
【问题描述】:

我目前在使用 Ruby on Rails 的 active_admin 中的多态关联表单时遇到问题。

我设置了三种模型:办公室、公司和用户。公司和用户都可以拥有办公室。我的模型设置如下:

class Office < ActiveRecord::Base
  belongs_to :ownable, :polymorphic => true
end

class User < ActiveRecord::Base
  has_many :offices, :as => :ownable
end

class Company < ActiveRecord::Base
  has_many :offices, :as => :ownable
end

active_admin 不允许我在其表单上编辑所有者,但确实在索引和显示页面上正确显示它(包括指向公司或用户的链接)。

我尝试使用 formtastic 手动创建表单,但没有任何运气 - “可拥有”字段被忽略,其他所有内容都正确呈现。

明确一点:我希望能够在 active_admin 中的新和编辑字段上编辑 Office 模型的所有者。

任何人都可以提供任何帮助吗? :)

【问题讨论】:

    标签: ruby-on-rails polymorphic-associations formtastic activeadmin


    【解决方案1】:

    嘿,我知道这可能晚了一个月,但我在寻找另一个问题的答案时遇到了你的问题。

    我一直在我的项目中使用 ActiveAdmin 和多态关系。

    我建议这样做:

    ActiveAdmin.register Office do
      form do |f|
        f.inputs :ownable_type, :ownable_id
        f.buttons
      end
    

    当模型是多态的时,需要配置两个字段,它们指向与其有关系的对象。因此,在这种情况下,您需要所有者类型(用户或公司)和对象 ID 的字段。

    这应该允许您在特定 Office 上编辑这些字段。

    【讨论】:

    • 这显示了 *type 和 *id 的字段,但将它们显示为文本字段(而不是为正常关联提供的下拉菜单),这有点令人沮丧。
    • 另外,以这种方式指定字段会破坏用于在表单上显示所有字段的模型自省,这很烦人。
    猜你喜欢
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多