MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Truy cập bộ sưu tập con trong mongoid với biểu mẫu rails để chỉnh sửa và tạo mục nhập mới

Hãy thử sử dụng trình trợ giúp biểu mẫu "fields_for" cho mô hình nhúng của bạn như trong ví dụ làm việc sau đây. Hy vọng rằng điều này sẽ hữu ích.

Phải mất một lúc để giải quyết các lỗi chính tả và mâu thuẫn, vì vậy nếu bạn muốn có câu trả lời nhanh hơn trong tương lai, vui lòng đặt câu hỏi của bạn vừa chính xác vừa tối thiểu nhất có thể.

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 / route.rb

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

test / function / 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. Lỗi nghiêm trọng:Không tìm thấy lớp 'Mongo' trong C:\\ Apache Software Foundation \ Apache2.2 \ htdocs \ sample \ testdb.php

  2. Nhận Tất cả 'tài liệu' từ MongoDB 'bộ sưu tập'

  3. Slice với Projection với C #

  4. Quan hệ được nhúng hoặc được tham chiếu

  5. Làm cách nào để tính giá dương và giá âm bằng mongodb hoặc robomongo?