У меня есть две модели, Agent
и AgentCommand
, и вот как выглядит ассоциация в моделях:
# models/agent.rb
has_many agent_commands, foreign_key: "agent_id", class_name: "Task"
.
# models/agent_command.rb
belongs_to :agent
Однако, когда я пытаюсь для вызова Agent.first.commands
, я получаю эту ошибку:
2.5.1 :002 > Agent.first.tasks
Agent Load (1.4ms) SELECT "agents".* FROM "agents" ORDER BY "agents"."id" ASC LIMIT $1 [["LIMIT", 1]]
Traceback (most recent call last):
1: from (irb):2
NoMethodError (undefined method `tasks' for #<Agent:0x00007fcc005c2960>)
Did you mean? company
Вот как выглядят файлы миграции для обоих:
# db/migrations/date_create_agent_commands.rb
class CreateAgentCommands < ActiveRecord::Migration[5.2]
def change
create_table :agent_commands do |t|
t.belongs_to :agent
t.text :command
t.boolean :completed, :default => false
t.timestamps
end
end
end
и
# db/migrations/date_create_agents.rb
class CreateAgents < ActiveRecord::Migration[5.2]
def change
create_table :agents do |t|
t.references :company
t.string :name
t.timestamps
end
end
end
Не Я совершенно уверен, почему это не работает, так как я думал, что помню, как делал это в прошлом. Просто попытка вызвать модель AgentCommand
с Agent
через псевдоним Task
, чтобы я мог использовать Agent.first.tasks
и увидеть список agent_commands
Любая помощь будет очень оценили. В настоящее время используется Rails 5.2.3