Как правильно использовать "link_to" в разделе администратора в Rails - PullRequest
0 голосов
/ 04 декабря 2018

Итак, у меня есть приложение, в котором есть раздел администратора.В разделе администратора есть контроллер задач с методом индекса и индексом представления.

У меня также есть диспетчер задач, отдельный от папки администратора.Этот контроллер имеет весь CRUD.

Каждый вызов принадлежит субъекту.Контроллер субъектов в разделе администратора имеет индексный метод и представление.Контроллер предметов не в админке имеет весь CRUD.

Теперь, с точки зрения субъектов (НЕ в разделе администратора), я могу сделать что-то вроде:

<%= link_to "New Challenge".html_safe, new_subject_challenge_path(@subject) %>

Я бы хотел сделать то же самое в разделе администратора, но яне могу понять, как это сделать.Копирование кода приводит к ошибке:

No route matches {:action=>"new", :controller=>"challenges", :subject_id=>nil} missing required keys: [:subject_id]

Но я надеялся, что смогу сделать это без дополнительных маршрутов ....

Кажется, это должно быть легко, но я недействительно знаю, как справиться с этим.Буду очень признателен за любую помощь ... Я надеюсь, что объяснил себя достаточно хорошо.

Маршруты администратора используются с пространством имен:

namespace :admin do
    resources :paths, only: [:index, :new, :create, :update, :edit]
    resources :users, only: [:index, :new, :create, :show, :edit, :update] 

end

  resources :challenges, except: [:index, :destroy] do
    resources :solutions, only: [:create]
   end

resources :subjects

1 Ответ

0 голосов
/ 04 декабря 2018

Ссылка, которую вы создаете, указывает на маршрут, для которого требуется идентификатор субъекта.В представлении субъектов это работает, потому что Rails может найти subject_id в @subject, который вы передаете помощнику пути.

Когда вы копируете и пытаетесь повторно использовать ту же ссылку в вашем представлении администратораЯ ожидаю, что @subject не назначен и поэтому не может найти требуемый subject_id.Предоставьте вашему администратору раздел с темой, и он должен работать!

Также, если вы хотите получить более четкое представление о маршрутизации, документы Rails довольно хороши.

...