我有两个不同的模型叫做Infraction and Lock。这些属于我的用户模型,用户has_one
锁定和many
违规行为。
管理员可以在用户上创建锁定,并为他们提供违规行为,但是对于严重违法行为,有必要提供违规行为并同时对用户进行锁定。
为了节省管理员不必点击多个表单,我想我可以将所有内容都滚动到一个表单中:同时在同一个用户上构建一个Infraction和一个Lock,但我不知道该怎么做它。在我意识到它只能占用一个对象之前,我正在考虑使用form_for块来实现它。
有没有人知道如何解决这个问题?
答案 0 :(得分:1)
查看fields_for helper和accepts_nested_attributes_for。两者的结合将满足您的需求。
示例:
<%= form_for @person do |person_form| %>
...
<%= person_form.fields_for :address do |address_fields| %>
...
Delete: <%= address_fields.check_box :_destroy %>
<% end %>
...
<% end %>
你的班级类似于:
class Person < ActiveRecord::Base
has_one :address
accepts_nested_attributes_for :address
end