ruby-on-rails - 如何将自定义路由添加到资源路由

标签 ruby-on-rails ruby-on-rails-3 rails-routing

我有一个 invoices_controller其中有资源路线。如下:

resources :invoices do
  resources :items, only: [:create, :destroy, :update]
end

现在我想在发票中添加发送功能,如何将自定义路由添加为 invoices/:id/send发送请求说 invoices#send_invoice以及我应该如何在 View 中链接到它。

传统的rails方法是什么。谢谢。

最佳答案

在您的 route 添加:

resources :invoices do
  post :send, on: :member
end

或者
resources :invoices do
  member do
    post :send
  end
end

那么在你看来:
<%= button_to "Send Invoice", send_invoice_path(@invoice) %>

或者
<%= link_to "Send Invoice", send_invoice_path(@invoice), method: :post %>

当然,您不受 POST 方法的束缚

关于ruby-on-rails - 如何将自定义路由添加到资源路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16693185/

相关文章:

ruby-on-rails - 在 ruby​​ on Rails 中将参数作为路径变量传递

ruby-on-rails - 我在 ActionController 中遇到路由错误,直到重新启动 rails 服务器

ruby-on-rails - Ember 模型只加载最后一条记录

ruby-on-rails - 使用 rspec 检查错误的枚举

ruby-on-rails-3 - Rails 3 库直到需要才加载

ruby-on-rails - 我的 application.js 无法工作并且 application.css 无法在 Rails 中更新

ruby-on-rails - 将 DateTime 与当前日期进行比较

ruby-on-rails - 从 Rails after_filter 中的 View 报告数据

jquery - 如何将路径助手与 jquery 单击事件一起使用?

ruby-on-rails - 从嵌套资源中删除命名空间