我正在尝试为我的一个名为Property的模型创建一个表单,该表单嵌入另一个名为LateFeePolicy的模型。
class Property
include Mongoid::Document
include Mongoid::Timestamps
embeds_one :late_fee_policy
accepts_nested_attributes_for :late_fee_policy
end
LateFeePolicy是两个子类的父级:
class FixedLateFeePolicy < LateFeePolicy
field :amount, type: Money
end
和
class PercentageLateFeePolicy < LateFeePolicy
field :percentage, type: Float
end
问题是如何动态生成表单以创建属性实例并在固定或百分比延迟费用政策之间进行选择。
这是我的表格,但打开后它没有显示任何内容:
<%= form_for @property, :html => { :class => 'form-horizontal' } do |f| %>
<div class="control-group">
<%= f.label :late_fee_policy, :class => 'control-label' %>
<div class="controls">
<%= f.fields_for :late_fee_policy do |flfp| %>
<div><%= flfp.label :amount %>
<%= flfp.text_field :amount %></div>
<% end %>
</div>
</div>
<% end %>
答案 0 :(得分:1)
我会向Property
模型添加一个属性,以指定它是哪种类型,并将其表示为单选按钮,并根据单选按钮显示或隐藏正确的字段。我可能会误解你的问题。 Checkout RailsCasts Nested Forms Part 2,它会动态添加动态字段。