【问题标题】:How do I mount multiple rails engines?如何安装多个导轨引擎?
【发布时间】:2016-10-03 18:01:24
【问题描述】:

如果我希望能够托管同一个 Rails 引擎(机器人)的多个实例,我应该怎么做?这将是单独的引擎(使用相同的代码),但使用不同的模型属性、数据等。

对我来说唯一有意义的方法是安装单独的引擎(机器人)做这样的事情..

mount SomeENGINE, at: 'bot/:unique_id'

这是这样做的方法吗?基本上每个引擎都有一个单独的网络钩子作为识别它们的一种方式?

【问题讨论】:

    标签: ruby-on-rails routes bots rails-engines


    【解决方案1】:

    是的,你的想法基本上会奏效。以下是在 10 条不同路线上安装 enginge 10 次的示例:

    Rails.application.routes.draw do
      (1..10).each do |idx|
        mount MyEngine::Engine => "/bot_#{idx}"
      end
    end
    

    【讨论】:

    • 是否可以动态执行此操作?例如基于模型 ID?这样在创建模型时会安装新引擎?
    • 是的,你应该可以。根据mount (api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/…) 上的文档,它接受与match 相同的选项,允许通配符参数。
    • 我正在尝试这样的事情,但没有运气 -> mount MyEngine::Engine, at: 'bot', path: 'bot/:id'
    • 检查您的rake routes 以确保生成的路线看起来正确
    猜你喜欢
    • 2012-02-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多