Я пытаюсь использовать методы has_one и has_many в одной модели. В задачах задач много задач, но у них также есть одна задача по умолчанию.Использование как has_one, так и has_many ассоциации
Я пытаюсь создать столбец в таблице задач, содержащий идентификатор задачи. Однако, когда я пытаюсь установить эту задачу по умолчанию, она не работает.
class Taskflow < ActiveRecord::Base
has_many :tasks
has_one :default_task, :class_name => 'Task'
class Task < ActiveRecord::Base
belongs_to :taskflow
Я засеять базу данных, то в консоли рельсы я пытаюсь назначить задачу быть TaskFlow default_task:
taskflow1 = Taskflow.first
task1 = Task.first
taskflow1.default_task = task1
Это не работает с TaskFlow значением default_task остающегося «ноль». Каков правильный способ достижения желаемого поведения?
Любая помощь будет высоко оценена.
Редактировать
файлов миграции являются:
class CreateTaskflows < ActiveRecord::Migration
def change
create_table :taskflows do |t|
t.string :title
t.string :description
t.references :default_task
t.timestamps null: false
end
end
end
class CreateTasks < ActiveRecord::Migration
def change
create_table :tasks do |t|
t.string :task_type
t.text :help
t.text :data
t.belongs_to :taskflow
t.timestamps null: false
end
end
end
первый выключен, он выглядит, как вы никогда не ставили задачу, чтобы «taskflow1.default_task = задача» установит default_task к нулю, потому что задача никогда не устанавливается. У всех задач TaskFlow есть одна и та же задача по умолчанию или она изменяется между экземплярами TaskFlow? –
К сожалению, это была опечатка. Задача по умолчанию может отличаться между экземплярами задач. Большое спасибо. – RobotEyes