Rails + MongoMapper + EmbeddedDocument形成帮助

我正在开发一个非常简单的Web应用程序(着名的最后一句话),我正在使用Rails 2.3.5 + MongoMapper 0.7.2并使用嵌入式文档。 我有两个问题要问:

首先,有没有使用Rails + MongoMapper + EmbeddedDocument的示例应用程序? 最好是在GitHub或其他类似的网站上,以便我可以看看来源,看看我应该去哪里? 如果不 …

……处理这项任务的最佳方法是什么? 我将如何创建表单来处理嵌入式文档。

我试图做的是向用户添加地址。 如果你愿意,我可以折腾这两个模型。

谢谢您的帮助!

这是我在其中一个应用程序中采用的基本方法。 问题有很多答案 – 问题是文档,答案是嵌入式文档。 您可以使用“添加答案”链接生成另一个答案字段,并使用“删除”链接删除一个。

_form.html.erb:

<% form_for @problem do |f| %> <%= f.error_messages %> 

<%= f.label :content %>
<%= f.text_area :content, :size => '50x7' %>

...etc... <%= add_answer_link "(add answer)" %>
<%= render :partial => 'answer', :collection => @problem.answers %>

<%= f.submit "Submit" %>

<% end %>

_answer.html.erb:

 
<% fields_for 'problem[answers]', answer, :index => nil do |f| -%> <%= f.label :content, "Answer #{answer.id}:" %> <%= f.text_field :content, :size => 50 %> <%= link_to_function "(remove)", "$(this).up('.answer').remove()" %> <% end -%>

problems_helper.rb

 module ProblemsHelper def add_answer_link(name) link_to_function name do |page| page.insert_html :bottom, "answers", :partial => 'answer', :object => Answer.new end end end 

我删除了一些实现的小部分,但这应该有效。

现在更容易 – 更新Rails 4.1.1,ruby 2.1.1p76:

楷模:

 class Location include MongoMapper::EmbeddedDocument key :state, String, :default => "CA" key :zip, String timestamps! end class House include MongoMapper::Document timestamps! one :location end 

控制器:

 def new @house = House.new end 

new.html.erb:

 <%= form_for @house, url: houses_path do |house_form| %> 

<%= house_form.label :name %>
<%= house_form.text_field :name %>

<%= house_form.fields_for :location do |address_fields| %> Street : <%= address_fields.text_field :street %> Zip code: <%= address_fields.text_field :zip %> <% end %>

<%= house_form.submit %>