【问题标题】:How to create a custom create route in rails如何在 Rails 中创建自定义创建路线
【发布时间】:2019-03-28 17:29:30
【问题描述】:

我目前在发票控制器中有一个 create 方法。但是我需要另一个,称为“create_inappointment_invoice”。我想知道路由文件中创建与此相关的路由的语法是什么。我基本上想要与resources :invoices, controller: "admins/invoices", only: [:create] 相同的路线,但更改控制器操作的名称。谢谢

【问题讨论】:

    标签: ruby-on-rails ruby routes


    【解决方案1】:

    post 'admins/all_invoices', to: 'admin#invoices'

    其中 admin 是您的控制器和发票在您的操作中。

    【讨论】:

    • 感谢您的回答,但我不太明白您的描述。
    • 如果上述路由 admins/all_invoices 匹配,则控制将转到您的控制器 admin 和操作 invoices 例如:class Admincontroller < ApplicationController def invoices # write your code here end end
    【解决方案2】:

    类似下面的 sn-p 应该可以完成这项工作:

    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
    

    这将在您的admin/invoices controller 中触发create_inappointment_invoice 方法

    【讨论】:

    • 感谢您的回答。但是,这仍然将我带到原始的创建方法。
    • 不应该的!你点击的网址是什么?
    • 它目前正在达到我的其他创建操作条件的render new 部分,这表明它仍在使用原始创建方法。
    【解决方案3】:

    这似乎有效:

        `post "/invoices", to: "admins/invoices#create_inappointment_invoice", as: :create_inappointment_invoice`
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多