sql >> データベース >  >> NoSQL >> MongoDB

Rails + MongoMapper+EmbeddedDocumentフォームヘルプ

    これが私のアプリの1つで採用した基本的なアプローチです。問題には多くの答えがあります-問題は文書であり、答えは埋め込まれた文書です。 [回答の追加]リンクを使用して別の回答フィールドを生成し、[削除]リンクを使用して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>
    

    problem_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
    

    実装のマイナービットをいくつか切り取りましたが、それでうまくいくはずです。



    1. MongoDBアグリゲーションフレームワークの$groupは値の配列を返すことができますか?

    2. phpredisライブラリを使用してElasticacheのRedisクラスターをPHPに接続できません

    3. pymongoを使用してmongodbでクエリ日付を作成するにはどうすればよいですか?

    4. MongoDBでのルックアップチャートの紹介