MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Достъп до подколекция в mongoid with rails формуляр за редактиране и създаване на нов запис

Опитайте да използвате помощния формуляр "fields_for" за вашия вграден модел, както в следния работещ пример. Надяваме се, че това помага.

Отне известно време, за да се справите с правописните грешки и несъответствията, така че ако искате по-бърз отговор в бъдеще, моля, направете въпроса си възможно най-точен и възможно най-минимален.

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

test/functional/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. MongoDB валидна алтернатива ли е на релационните db + lucene?

  2. Не може да се създаде пространство от имена в транзакция с множество документи (MongoDB 4.0, Spring Data 2.1.0, Spring Boot)

  3. Как да премахнете дубликати с определено условие в mongodb?

  4. как да актуализирате полета на вложен обект в mongodb?

  5. MongoDB индексира за $elemMatch