如何使用动态的多级散列 form_for?

how to do form_for with dynamic, multi-level hash?

我有一个包含动态内容的 class。我在控制器的新方法中初始化它:

def new
  @person = Person.new(:info => {:first_name => "Joe", :last_name => "Smith"})
end

现在,忽略我在我的控制器和表单之间手动协调 :info 结构的事实(我有一个元配置存储在另一个 class,我正在简化它以寻求抽象帮助),如何为 first_name 和 last_name 设置字段?这失败了:

<%= form_for @person do |f| %>
    <% f.text_field :info[:first_name] %>
<% end %>

它失败了

no implicit conversion of Symbol into Integer

感谢您的帮助。

试试这个

<%= form_for @person do |f| %>
  <%= f.fields_for :info do |ff|
    <% ff.text_field :first_name %>
   <% end %> 
<% end %>