Направляющие + MongoMapper + EmbeddedDocument формируют справку

Я работаю над довольно простым веб-приложением (известные последние слова) и работаю с направляющими 2.3.5 + MongoMapper 0.7.2 и использую встроенные документы. У меня есть два вопроса спросить:

Во-первых, там какие-либо примеры приложений там используют направляющие + MongoMapper + EmbeddedDocument? Предпочтительно на GitHub или некотором другом подобном сайте так, чтобы я мог смотреть на источник и видеть, где я, как предполагается, направляюсь? Если нет...

... что лучший способ состоит в том, чтобы приблизиться к этой задаче? Как я пошел бы о создании формы для обработки встроенного документа.

То, что я пытаюсь сделать, добавляют адреса к пользователям. Я могу бросить эти две рассматриваемых модели, если Вы хотели бы.

Спасибо за справку!

9
задан Bob Martens 26 March 2010 в 19:11
поделиться

1 ответ

Вот базовый подход, который я применил в одном из своих приложений. У проблемы много ответов: проблема - это документ, ответ - это встроенный документ. Вы можете использовать ссылку «добавить ответ», чтобы создать еще одно поле ответа, и ссылку «удалить», чтобы удалить его.

_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 %>

_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>

issues_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

Я вырезал пару второстепенных фрагментов реализации, но это должно сработать.

10
ответ дан 4 December 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: