Ruby on rails 如何使用动态、多级散列进行form_for?

Ruby on rails 如何使用动态、多级散列进行form_for?,ruby-on-rails,mongoid,Ruby On Rails,Mongoid,我有一个动态内容的班级。我在控制器中的新方法中初始化它: def new @person = Person.new(:info => {:first_name => "Joe", :last_name => "Smith"}) end 现在,不管我正在手动协调控制器和窗体之间的:info结构(我有一个元配置存储在另一个类中,我正在简化它以寻求抽象帮助),我如何为first_name和last_name设置字段?这失败了: <%= form_for @person d

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

def new
  @person = Person.new(:info => {:first_name => "Joe", :last_name => "Smith"})
end
现在,不管我正在手动协调控制器和窗体之间的:info结构(我有一个元配置存储在另一个类中,我正在简化它以寻求抽象帮助),我如何为first_name和last_name设置字段?这失败了:

<%= form_for @person do |f| %>
    <% f.text_field :info[:first_name] %>
<% end %>
谢谢你的帮助。

试试这个

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

试试这个

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


@breno preucchi这适用于新建和创建(我可以看到数据),但不适用于编辑。编辑时,参数在HTML中,但缺少值,因此输入框显示为空白。检查显示:如果我输入了一个新的名字,它确实会进入数据库,所以它也会在更新时工作。O数据库无法保存哈希值。可能数据库中有一个属性信息作为字符串。为此,需要序列化此哈希。我将编辑我的文章,为其添加一个例子。@breno preucchi这适用于新建和创建(我可以看到数据),但不适用于编辑。编辑时,参数在HTML中,但缺少值,因此输入框显示为空白。检查显示:如果我输入了一个新的名字,它确实会进入数据库,所以它也会在更新时工作。O数据库无法保存哈希值。可能数据库中有一个属性信息作为字符串。为此,需要序列化此哈希。我将编辑我的帖子,添加一个例子。