私はhas_oneメソッドとhas_manyメソッドを1つのモデルにしようとしています。タスクフローには多くのタスクがありますが、単一のデフォルトタスクもあります。has_oneとhas_manyの両方の関連付けを使用する
タスクのIDを含むタスクフローテーブルに列を作成しようとしています。しかし、私が試して、そのデフォルトのタスクを設定すると動作しません。
class Taskflow < ActiveRecord::Base
has_many :tasks
has_one :default_task, :class_name => 'Task'
class Task < ActiveRecord::Base
belongs_to :taskflow
私はタスク・フローdefault_taskするタスクを割り当てようとレールコンソールで、データベースをシード:
taskflow1 = Taskflow.first
task1 = Task.first
taskflow1.default_task = task1
これは「ゼロ」を、残りのタスク・フロー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
を要求することができます。すべてのTaskFlowsが同じデフォルトタスクを持つか、それともTaskFlowインスタンス間で変更されますか? –
申し訳ありませんが、それはタイプミスでした。デフォルトのタスクは、タスクフローインスタンス間で異なる場合があります。どうもありがとう。 – RobotEyes