MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Akses subkoleksi di mongoid dengan bentuk rel untuk mengedit dan membuat entri baru

Coba gunakan bantuan formulir "fields_for" untuk model tersemat Anda seperti pada contoh kerja berikut. Semoga ini membantu.

Butuh beberapa saat untuk mengatasi kesalahan ketik dan inkonsistensi, jadi jika Anda menginginkan jawaban yang lebih cepat di masa mendatang, harap buat pertanyaan Anda seakurat dan seminimal mungkin.

class Californium
  include Mongoid::Document
  field :name
  field :license_type
  embeds_one :address
end

class Address
  include Mongoid::Document
  field :street
  field :city
  field :state
  field :zip
  embedded_in :california, :inverse_of => :address
end

app/views/edit.html.erb

<%= form_for :californium do |f| %>

    <div class="field">
      <%= f.label :name %>
      <br/>
      <%= f.text_field :name %>
    </div>
    <div class="field">
      <%= f.label :license_type %>
      <br/>
      <%= f.text_field :license_type %>
    </div>

    <%= fields_for @californium.address do |af| %>
        <div class="field">
          <%= af.label :street %>
          <br/>
          <%= af.text_field :street %>
        </div>

        <div class="field">
          <%= af.label :city %>
          <br/>
          <%= af.text_field :city %>
        </div>
    <% end %>

    <div class="actions">
      <%= f.submit %>
    </div>

<% end %>

config/routes.rb

  match 'california/:id' => 'california#edit', via: :get
  match 'california/:id' => 'california#update', via: :post

tes/fungsional/california_controller_test.rb

require 'test_helper'

class CaliforniaControllerTest < ActionController::TestCase
  def setup
    Californium.delete_all
  end

  test "form" do
    cal = Californium.create(name: 'Benjamin Spock', license_type: 'MD', address: Address.new(street: '311 Temple St', city: 'New Haven', state: 'CT', zip: '06511'))
    assert_equal(1, Californium.count)
    p Californium.find(cal.id)
    get :edit, id: cal.id
    assert(assigns(:californium))
    assert_response(:success)
    puts @response.body
  end
end



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Gabungkan dokumen dengan array bersarangnya dan array bersarangnya

  2. Bidang hasil Mongoose/MongoDB muncul tidak terdefinisi dalam Javascript

  3. NoClassDefFoundError => ClassPath$JavaContext saat menggunakan play start

  4. Bagaimana cara menyalin koleksi dari satu database ke database lain di server yang sama menggunakan PyMongo?

  5. Bagaimana cara meneruskan variabel lingkungan ke skrip mongo