ruby-on-rails - 如何删除嵌套在不同范围内的重复路由?

标签 ruby-on-rails ruby

我在命名空间和子域约束内有相同的路由。

第一个用于生产,第二个用于开发。如何删除这个重复项?

constraints :subdomain => 'api' do
    scope :module => "api" do
      resources :users
      resources :orders
    end     
end

namespace :api do
    resources :users
    resources :orders
end    

最佳答案

好吧,do ... end 创建了一个 block 。如果您有一个重复的 block ,您可以通过将其转换为 Proc 并将其传递给 Proc.newproc (后者只是前者的快捷方式):

res = Proc.new do
  resources :users
  resources :orders
end

然后,您可以将 Proc (res) 作为 block 参数传递给任何需要 block 的方法,方法是在其前面添加 &:

constraints :subdomain => 'api' do
  scope :module => 'api', &res
end

namespace :api, &res

Here's a great article关于在 Ruby 中使用 block 、过程和 lambda。

关于ruby-on-rails - 如何删除嵌套在不同范围内的重复路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9306524/

相关文章:

ruby-on-rails - 如何在混合(JSON API + HTML)Rails 5应用程序中使用JSON响应处理通用错误?

css - 在我的 Mac 上全局安装 SASS 时出错

ruby - 是否可以使用 ruby​​-iCalendar 导出只有一个事件的 VCalendar?

ruby - 如何在 Ruby 2.1 中获取给定 UTF-8 代码的字符

ruby-on-rails - 使用 capybara、phantomjs 和 Rails 在子域上测试 javascript

ruby-on-rails - 使用 seed.rb 文件创建记录时出现 CarrierWave::FormNotMultipart 错误

ruby-on-rails - OmniAuth Facebook token 过期错误

ruby-on-rails - 如何在产品页面显示所有门店并将产品分配给特定门店

ruby-on-rails - 主动支持 key 生成器,它在哪里?

ruby-on-rails - 如何使用 RSpec 测试 ajax POST 请求?