我正在尝试设置一个简单的嵌套模型表单,但在尝试通过“新”操作显示表单时收到错误。这是我的设置:
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 %>
当尝试点击/ accounts / new中的“新”操作时,我收到以下错误:
未初始化的常量帐户::组织
应用程序跟踪: app / controllers / accounts_controller.rb:5:在'new'
中非常感谢任何帮助。
答案 0 :(得分:0)
这似乎是一个奇怪的加载顺序问题。你是否正在使用config.load_paths或其他类似的东西做任何聪明的事情?
只是为了查看它是否有效,请尝试在account.rb顶部的require File.join(Rails.root, 'app/models/organization.rb')
。这不是你想要保留的解决方案,但如果它适用于该行,那么你就会知道问题在于加载器。