Мне не удалось найти решение этой проблемы. Это похоже на многие вопросы, заданные до этого, но я считаю, что в моей жизни что-то не так. Сейчас я получаю эту ошибку:NameError in Account # show, Ruby on Rails
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
Это должно быть все, что я могу думать о том, что будет вызывают эту проблему. У меня есть другие атрибуты, такие как история и программа. Они почти идентичны процессу учета и не порождают ошибок. Он выдает эту ошибку как в моих представлениях, так и когда я пытаюсь сохранить в db, используя мой REST API.
Это дает мне эту ошибку: Никакой связи не найдено для имени 'account_process'. Он еще не определен? – Rizowski
Вы также должны переименовать свои вызовы в эту ассоциацию (например, здесь '@ account.account_process.each') – Deradon
Хорошо, мне нужно заставить его работать с множественными номерами, но немного сработало с ним, чтобы я мог его заставить работать добавив
:class_name => "AccountProcess"
в мою ассоциацию. Это давало мне ошибкуundefined method 'key?' for nil:NilClass
. – Rizowski