Próbuję skonfigurować prosty model zagnieżdżony, ale pojawia się błąd podczas próby wyświetlenia formularza za pomocą działania "nowego". Oto moja konfiguracja:
class Account < ActiveRecord::Base
has_many :people
has_many :organizations
accepts_nested_attributes_for :organizations
end
class Organization < ActiveRecord::Base
belongs_to :account
has_many :locations
accepts_nested_attributes_for :people
accepts_nested_attributes_for :addresses
end
class AccountsController < ApplicationController
def new
@account = Account.new
@account.organizations.build
end
def create
@account = Account.new(params[:account])
if @account.save
#handle success
else
render "new"
end
end
end
<%= form_for(@account) do |f| %>
<%= f.label :type %><br />
<%= f.text_field :type %><br />
<%= f.fields_for :organization do |organization_fields| %>
<%= organization_fields.label :name %><br />
<%= organization_fields.text_field :name %><br />
<%= organization_fields.label :website %><br />
<%= organization_fields.text_field :website %><br />
<% end %>
<%= f.submit "Add account" %>
<% end %>
Przy próbie uruchomienia "nowej" akcji na / accounts / new pojawia się następujący błąd:
niezainicjowana stała konto :: Organizacja
Śledzenie aplikacji: app / controllers / accounts_controller.rb: 5: in "new"
Każda pomoc zostanie bardzo doceniona.
Odpowiedzi:
0 dla odpowiedzi № 1Wydaje się, że jest to problem z nieparzystym ładowaniem. Czy robisz coś sprytnego z config.load_paths czy cokolwiek w tym stylu?
Aby sprawdzić, czy to działa, spróbuj require File.join(Rails.root, "app/models/organization.rb")
u góry konta.rb. To nie jest rozwiązanie, które chcesz zachować, ale jeśli działa z tą linią, wtedy będziesz wiedział, że problem dotyczy ładowarki.