sql >> Databasteknik >  >> NoSQL >> MongoDB

Rails + MongoMapper + EmbeddedDocument blanketthjälp

Här är det grundläggande tillvägagångssättet jag tog i en av mina appar. Problemet har många svar - problemet är ett dokument, svaret är ett inbäddat dokument. Du kan använda länken "lägg till svar" för att skapa ytterligare ett svarsfält och länken "ta bort" för att ta bort ett.

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

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

Jag klippte bort ett par mindre delar av implementeringen, men det borde fungera.



  1. Integrering av ClusterControl med SNMP - A Proof of Concept:Del ett

  2. Importera en CSV-fil till MongoDB med mongoimport

  3. Installera Apache CouchDB på CentOS 8

  4. Tidskomplexitet för zadd när värde har högre poäng än högsta poäng som finns i den riktade sorterade uppsättningen