kea*_*gik 13 ruby-on-rails rails-engines ruby-on-rails-3
有没有办法配置isolate_namespace
方法不使用前缀表名?
class Engine < ::Rails::Engine
isolate_namespace MyEngine
end
Run Code Online (Sandbox Code Playgroud)
此外,隔离引擎将根据命名空间设置其名称,因此MyEngine :: Engine.engine_name将为"my_engine".它还会将MyEngine.table_name_prefix设置为"my_engine_",将MyEngine :: Article模型更改为使用my_engine_articles表.孤立的引擎文档
在设计原型时,我遇到了一个问题,我需要使用隔离命名空间模式的路由,但数据库表没有.这是因为我正在编写的可安装引擎拥有自己的自包含数据库.
如果不可能的话,不想进一步挖掘.
kea*_*gik 22
Rails 3和4
稍微深入研究Rails Engine代码库以找到解决方案.如果您定义一个方法来指定表名前缀(in /lib/my_engine.rb
),它将只使用它.所以设置返回nil工作正常.
require "my_engine/engine"
module MyEngine
# Don't have prefix method return anything.
# This will keep Rails Engine from generating all table prefixes with the engines name
def self.table_name_prefix
end
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2901 次 |
最近记录: |