не в состоянии сделать форму в рельсовом объединении - PullRequest
0 голосов
/ 21 января 2020

я создал проект scaffold, который имеет много-одну ассоциацию со stage scaffold, теперь я создал задачу, которая имеет много-одну ассоциацию со stage scffold. но форма задачи не отображается, я получаю сообщение об ошибке.

Error message

routes.rb

  resources :projects do
    resources :stages do
        resources :tasks
    end
  end

Задача form.html.erb

<%= form_with(model: task, url: [@stages, task], local: true) do |form| %>
  <% if task.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(task.errors.count, "error") %> prohibited this task from being saved:</h2>

      <ul>
      <% task.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field columns large-6">
    <%= form.label :task_name %>
    <%= form.text_field :task_name %>
  </div>

  <div class="actions">
    <%= form.submit 'Create', :class=>'button primary small' %>
  </div>
<% end %>

модель проекта.rb

  has_many :stages

модель stage.rb

  belongs_to :project
  has_many :tasks

модель задачи.rb

  belongs_to :stage

1 Ответ

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

Rails не может найти tasks_path в вашем приложении, потому что вы переместили задачи в ресурсы projects и stages, поэтому полный путь к path_path выглядит как projects_stages_tasks_path

Итак, вам нужно указать это URL для заданных проектов и этапов

<%= form_with(model: task, url: projects_stages_tasks_path(@stages, @stages.project), local: true) do |form| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...