答案: model
来电是多余的。应该只有一个,本例中的最后一个是赢家。我在滥用Form Object DSL。 :/
我在Rails 4.1表单中有一个改进表单对象,其结构类似于......
class MyForm < Reform::Form
include Composition
model :user
model :user_group
property :name, on: :user_group
property :email, on: :user
end
# ...
@form = MyForm.new(user: User.new, user_group: UserGroup.new)
# ...
<%= form_for(@form) do |f| %>
<%= f.text_field(:name) %>
<%= f.email_field(:email) %>
<% end %>
<input type="text" name="user_group[name]" id="user_group_name">
<input type="email" name="user_group[email]" id="user_group_email">
我的问题是为什么这些字段似乎忽略了模型映射并将它们渲染为错误的模型名称?我在这里做错了什么?
答案 0 :(得分:2)
你只能调用:: model一次!一旦用正确的模型(或任何名称)调用它,渲染就会将字段命名为您指定的:: model。关于改革的观点是隐藏关于你的模型名称的内部信息!