Как создать пользовательский маршрут создания в rails

#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`