Вложенные комментарии внутри вложенных маршрутов - PullRequest
0 голосов
/ 14 июня 2019

В настоящее время я добавляю вложенные комментарии в свое приложение, каждый раз, когда я пытаюсь добавить комментарий, я получаю следующую ошибку Couldn't find Project without an ID, так как мои маршруты не настроены должным образом.

Теперь я хотел бы чтобудет лучшим способом справиться с этим?

Могу ли я оставить свои маршруты таким образом и просто изменить @commentable соответственно?

Мои маршруты

  resources :projects do
    resources :project_steps, path: "step", only: [:show, :update]
    resources :tasks
    resources :reviews, only: [:create, :destroy]
  end

  resources :tasks do
    resources :comments, module: :tasks
  end

Мой комментариймодель:

  def comments
    Comment.where(commentable: commentable, parent_id: id)
  end

Мои задачи :: CommentsController

class Tasks::CommentsController < CommentsController
  before_action :set_commentable

private
  def set_commentable
    @commentable = Task.friendly.find(params[:task_id])
    # This doesn't work since it can't find a task without a project
  end
end

Или я должен изменить маршруты на:

resources :projects do
 resources :tasks do
  resources :comments, module: :tasks
 end
end

Но тогда я получаю следующую ошибку:Couldn't find path tasks_comments_path, но тогда мне нужно было бы изменить свою форму соответственно:

<%= form_with model: [commentable, Comment.new], local: true, html: { class: local_assigns[:class], data: { target: local_assigns[:target] } } do |form| %>
  <div class="form-group">
    <%= form.text_area :body, placeholder: "Add a comment", class: "form-control" %>
  </div>
  <div class="form-group">
    <%= form.hidden_field :parent_id, value: local_assigns[:parent_id] %>
    <%= form.submit "Create Comment", class: "btn btn-primary btn-block" %>
  </div>
<% end %>

Что-нибудь, что мне не хватает?Как мне это реализовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...