ruby-on-rails - Rails 什么时候用点而不是反斜杠创建路径?

标签 ruby-on-rails ruby routes

为什么 Rails 会创建这样的路径

/notification_templates/duplicate_me.1

应该是

/notification_templates/duplicate_me/1

我的路线是

resources :notification_templates do
    collection do
      get :blast_send
      patch :deactivate
      patch :activate
      get :get_list
      post :duplicate_me
    end
  end

我的链接是 <%= link_to "Duplicate", duplicate_me_notification_templates_path(template), method: :post, class: "btn btn-primary" %>

最佳答案

您正在尝试将资源传递到集合路由。为此,您的路线应定义为 member route相反:

resources :notification_templates do
  collection do
    get :blast_send
    patch :deactivate
    patch :activate
    get :get_list
  end
  member do
   post :duplicate_me
  end
end

当前将路由转换为点的原因是路径助手很可能将传入的参数 (template) 理解为 format specification 。使用点将格式与路径分隔开。

关于ruby-on-rails - Rails 什么时候用点而不是反斜杠创建路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406257/

相关文章:

ruby-on-rails - 检查 Rails 环境的条件语句

sql - PostgreSQL GROUP BY 与 MySQL 不同?

ruby - 如何在页面正文中搜索并强制进行编码转换

javascript - 如何使用 Aurelia 通过单击内部 anchor 链接来保持在同一页面上?

ruby-on-rails - 多态 Controller 和调用对象

ruby-on-rails - 你如何撤消 bundle install --without

ruby-on-rails - 在 Rspec View 中使用 Factory Girl

ruby - ljust 可以在每个 block 中使用吗?

ruby - Ruby 中优雅的日期解析

Laravel:路由在表单提交时返回 404 页面