1 ошибка не позволила сохранить этот этап: проект должен существовать - PullRequest
0 голосов
/ 15 января 2020

У меня есть эшафот проекта, в котором сохранено имя проекта, и я создал ассоциацию один ко многим с эшафотом этапа. но после создания проекта, когда я пытаюсь создать этап, я получаю эту ошибку: «Проект должен существовать»

project.rb

class Project < ApplicationRecord
  validates :project_name, presence: true
  has_many :stages
end

stage.rb

class Stage < ApplicationRecord
  belongs_to :project
  validates :stage, :planned_start_date, :planned_end_date, :responsibility, presence: true
  has_many :tasks
end

schema.rb

  create_table "projects", force: :cascade do |t|
    t.string "project_name"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.integer "user_id"
  end

  create_table "stages", force: :cascade do |t|
    t.string "stage"
    t.date "planned_start_date"
    t.date "planned_end_date"
    t.date "actual_start_date"
    t.date "actual_end_date"
    t.string "responsibility"
    t.boolean "status"
    t.float "finance"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.integer "project_id"
    t.index ["project_id"], name: "index_stages_on_project_id"
  end

1 Ответ

0 голосов
/ 15 января 2020

Для создания нового Stage. вам нужно предоставить Project, потому что у вас есть ассоциация принадлежат__ и х_мани между Project и Stage. Итак, согласно схеме вам необходимо предоставить project_id в рабочей области.

Вы можете создать Сцену следующим образом.

@project = Project.find(your_porject_id)
@stage = project.stages.create(your_stage_params)

ИЛИ

@project = Project.find(your_porject_id)
@stage = project.stages.new(your_stage_params)
@stage.save

Надеюсь, это поможет вам.

...