我一直无法找到解决此问题的方法。它类似于之前提出的很多问题,但我相信我的情况有所不同。我目前收到此错误:
NameError in Account#show
uninitialized constant Account::AccountProces
我在视图中抛出错误:
<%@account.account_process.each do |process|%>
Name: <%=process.name%><br/>
<%end%>
现在我检查了名称,所有内容都匹配,但AccountProces应该是AccountProcess。我不知道为什么它表明AccountProces只有一个。我在整个目录中搜索了只有1秒的内容。我还没找到任何东西。 这是我的模特:
class AccountProcess < ActiveRecord::Base
attr_accessible :account_id, :name
validates :account_id, presence: true
validates :name, presence: true
belongs_to :account
def as_json options={}
{
id: id,
name: name,
open_count: open_count,
created_at: created_at,
update_at: updated_at
}
end
end
这是我的迁移:
class CreateAccountProcesses < ActiveRecord::Migration
def change
create_table :account_processes do |t|
t.references :account
t.string :name, :null => false, :default => ""
t.timestamps
end
end
end
这是我的简化帐户模型:
class Account < ActiveRecord::Base
attr_accessible :computer_id, :allotted_time, :domain, :tracking, :used_time, :username, :account_process_attributes
validates :username, :presence => true
validates :computer_id, :presence => true
has_many :account_process, :dependent => :destroy
accepts_nested_attributes_for :account_process
def as_json options={}
{
id: id,
computer_id: computer_id,
domain: domain,
username: username,
tracking: tracking,
account_process_attributes: account_process,
created_at: created_at,
update_at: updated_at
}
end
end
这应该是我能想到的所有会导致这个问题的事情。我还有其他属性,如历史和程序。它们与帐户流程几乎完全相同,并且不会产生任何错误。它在我的视图中以及当我尝试使用我的REST API保存到数据库时都会抛出此错误。
答案 0 :(得分:0)
尝试更改
class Account < ActiveRecord::Base
...
has_many :account_process, :dependent => :destroy
...
end
到
class Account < ActiveRecord::Base
...
has_many :account_processes, :dependent => :destroy
...
end
并在您的视图中更改此关联。
has_many
中的关联名称应始终为复数,ActiveRecord将通过单一化关联名称来确定该类。
如果无法正确生成类名,您可以执行以下操作:
has_many :account_processes, :class_name => "AccountProcess"