Rails + MongoMapper + EmbeddedDocument形式帮助

Bob*_*ens 9 forms ruby-on-rails mongodb mongomapper

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

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

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

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

谢谢您的帮助!

Pre*_*ids 10

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

_form.html.erb:

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

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

  ...etc...

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

  <p><%= f.submit "Submit" %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

_answer.html.erb:

<div class="answer">
  <% 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 -%>
</div>
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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