RoR - 在一个表单中处理来自不同模型的部分内容?

时间:2011-06-30 04:23:00

标签: ruby-on-rails ruby-on-rails-3

我正在尝试构建一个从其他模型渲染/处理部分的模型。基本上,主模型将提供一些通用功能,同时根据用户输入嵌入不同的模型。

换句话说,在同一个模型中,我需要从各种模型中渲染“_form.html.erb”并将它们保存为嵌套模型。

我知道如果它始终是相同类型的模型,nested model将会完成工作。

class Master < ActiveRecord::Base
  has_one :{change depending on user input}
  accepts_nested_attributes_for :{change depending on user input}
end

我看过多态模型,但似乎完全相反(即多个模型中的一个部分)。

有什么想法吗?多态嵌套模型还是什么?

1 个答案:

答案 0 :(得分:1)

这看起来肯定你需要一个多态关联,但accepts_nested_attributes_for不支持多态。

但是,请查看此相关问题accepts_nested_attributes_for with belongs_to polymorphic

也许在您的表单中,您可以执行以下操作来呈现正确的_form partial:

<%= render :partial => File.join(@master.thing.class.name.underscore.pluralize, "form") %>
祝你好运!