Это заставило меня улыбнуться, потому что, как новый программист, мы склонны копировать и вставлять, но забываем, что если мы не поймем, мы не можем go так далеко: -)
Внутри метода создания, в строке : @project = Project.find(params[:project_id])
вы ожидаете, что params будет иметь project_id
, но вы не передали его в форме, и чтобы передать его в форме, вам нужно иметь его на первом месте в new
действии.
Do это:
def new
@task = @stage.tasks.build
@project = @stage.project
end
, а затем добавить это внутри формы:
<%= form.hidden_field :project_id, value: @project.id %>