Есть модель Task с
самоприсоединением:
class Task < ActiveRecord::Base
has_many :subtasks, class_name: 'Task', foreign_key: "parent_id"
belongs_to :parent, class_name: 'Task'
belongs_to :user
belongs_to :project
end
Схема:
class CreateTasks < ActiveRecord::Migration
def change
create_table :tasks do |t|
t.string :title
t.text :description
t.string :priority
t.string :status
t.date :scheduled
t.date :deadline
t.integer :user_id
t.integer :project_id
t.references :parent, index: true
t.timestamps null: false
end
end
end
Есть задачи (tasks), есть подзадачи (subtasks), есть ключ для связи - parent_id.
Что хочу:
При переходе на созданную таску (она уже создана!) - экшн tasks#show (путь /task/:id), помимо её описания ниже иметь возможность добавления подзадачи (subtask).
В коде, без передачи params, это вероятно выглядело бы так:
@task = Task.find(params[:id])
@task.subtasks.new
@task.save
Но как это делается на практике? Создается SubtasksController и в нем описываются экшены?
Добавляются не RESTful-экшены в TasksController? Или что-то другое? :)
Нагуглил пока
видео с RailsCasts, но не знаю, мой ли случай.