我正在使用Rails 4.2构建一个Web应用程序,我有一个名为Strategy的模型,它与Tactic模型有一个has_many关系。
要为策略创建视图,我需要在表单上有许多嵌套的策略。我一直在使用Cocoon gem开发这个视图。
到目前为止,我已经能够使表单在大多数情况下正常工作,但问题是我想在我的Tactic模型中添加Type属性。
对于一个给定的策略,我希望有一种给定类型的3种策略,以及另一种类型的2种模式。
问题在于渲染我的视图,所有五个模型都按顺序列出,没有任何空间可以放置我自己的HTML代码。
是否有一种简单的方法来分离出哪些是渲染的?现在,我的观点如下......
<%= form_for @strategy do |f| %>
<div class="strategy">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="tactics">
<%= f.fields_for :tactics do |i| %>
<%= render 'tactics_fields', f: i %>
<% end %>
</div>
<div class="buttons">
<%= f.button "Save Strategy", class: 'button' %>
</div>
<% end %>
如果有人可以提供任何建议,我们将不胜感激。
答案 0 :(得分:0)
您是否希望呈现表单,以便每个策略在其下方列出正好5个策略,其中3个是一种类型,2种是另一种类型?
如果是这样,您可以在控制器中执行此操作:
5.times do
tactic = @strategy.tactics.build
tactic.tactic_type = 'tactic_type'
end
另外,请注意,使用名为type
的属性并不是一个好主意。请改用tactic_type
之类的内容。