field_for和带有mongoid的嵌套表单

有人能给我一个使用mongoid的嵌套表单的工作示例吗?

我的模特:

class Employee include Mongoid::Document field :first_name field :last_name embeds_one :address end class Address include Mongoid::Document field :street field :city field :state field :post_code embedded_in :employee, :inverse_of => :address end 

你的型号:

 class Employee include Mongoid::Document field :first_name field :last_name embeds_one :address # validate embedded document with parent document validates_associated :address # allows you to give fe Employee.new a nested hash with attributes for # the embedded address object # Employee.new({ :first_name => "First Name", :address => { :street => "Street" } }) accepts_nested_attributes_for :address end class Address include Mongoid::Document field :street field :city field :state field :post_code embedded_in :employee, :inverse_of => :address end 

你的控制器:

 class EmployeesController < ApplicationController def new @employee = Employee.new # pre-build address for nested form builder @employee.build_address end def create # this will also build the embedded address object # with the nested address parameters @employee = Employee.new params[:employee] if @employee.save # [..] end end end 

你的模板:

 # new.html.erb <%= form_for @employee do |f| %>  <%= f.fields_for :address do |builder| %> 
<%= builder.label :street %> <%= builder.text_field :street %>
<% end %> <% end %>

这对你有用!

朱利安