#ruby-on-rails #ruby #routes
#ruby-on-rails #ruby #маршруты
Вопрос:
В настоящее время у меня есть метод create в контроллере счетов. Однако мне нужен другой, который называется ‘create_inappointment_invoice’. Мне было интересно, какой синтаксис был в файле routes для создания маршрута в связи с этим. Я в принципе хочу тот же маршрут, что и этот resources :invoices, controller: "admins/invoices", only: [:create]
, но меняю имя действия контроллера. Спасибо
Ответ №1:
post 'admins/all_invoices', to: 'admin#invoices'
где администратор является вашим контроллером и выставляет счета в вашем действии в нем.
Комментарии:
1. спасибо за ваш ответ, однако я не совсем понимаю ваше описание.
2. Если приведенный выше маршрут
admins/all_invoices
совпадает, то управление будет передано вашему контроллеруadmin
и действиеinvoices
, например:class Admincontroller < ApplicationController def invoices # write your code here end end
Ответ №2:
Что-то вроде приведенного ниже фрагмента должно выполнить эту работу:
resources :invoices, controller: "admins/invoices", only: [:create] do
collection do
post :create_inappointment_invoice
end
end
или
resources :invoices, controller: "admins/invoices", only: [:create] do
post :create_inappointment_invoice, on: :collection
end
Это ударит по create_inappointment_invoice
методу в вашем admin/invoices controller
Комментарии:
1. Спасибо за ваш ответ. Тем не менее, это все еще возвращает меня к оригинальному методу create.
2. Этого не должно быть! Какой URL-адрес вы нажимаете?
3. в настоящее время он выполняет
render new
часть моего другого условия действия create, что предполагает, что он все еще выполняет исходный метод create.
Ответ №3:
Казалось, это сработало:
`post "/invoices", to: "admins/invoices#create_inappointment_invoice", as: :create_inappointment_invoice`