如何为Heroku安装Radiant扩展?

时间:2011-02-22 23:00:11

标签: ruby-on-rails heroku radiant

我还没找到任何可行的东西。我知道Heroku不允许子模块/扩展,所以为了安装它们,需要做一些替代方法。

我的例子是Radiant Mailer。通常要安装它,我执行了这个:

./script/extension install mailer

在Heroku上使用它的替代方法是什么?

I have tried this already.

我注意到我的问题仍然存在,因为即使我rm'和wget'它回来了,git status仍然不承认它存在于那里。奇怪..

1 个答案:

答案 0 :(得分:1)

好吧,这是我发现的最佳方式。随意证明我错了:

手动安装扩展程序,如下所示:

cd /path/to/radiant/vendor/extensions
wget http://github.com/saturnflyer/radiant-help-extension/tarball/master
tar xzvf saturnflyer-radiant-help-extension-*.tar.gz
mv saturnflyer-radiant-help-extension-* help
cd /path/to/radiant
rake radiant:extensions:help:migrate
rake radiant:extensions:help:update

这里的特别说明以及我的问题引用链接中遗漏的内容是:

如果您使用Radiant的内置./script/extension install命令或Ray,则可以忽略此部分,因为它仅适用于手动安装。

为了正确加载扩展,Radiant需要扩展名的目录名来匹配扩展名(类)名称。

匹配规则是标准的Rails camelcase<→snakecase规则。例如,对于名为“Foo”的扩展名,扩展名目录名称必须命名为“foo”。对于名为“FooBar”的扩展名,目录名必须为“foo_bar”。如果您未遵循此约定,Radiant将无法加载扩展,并且应用程序将无法启动。迁移数据库时会出现错误,如:

Could not load extension from file: some_extension.
#<NameError: uninitialized constant SomeExtension>

如何知道分机的真实姓名?对于名称以“_extension.rb”结尾的文件,在扩展目录中查看。这是扩展程序的主要加载文件。扩展名的真实姓名是该结尾之前的名称。在前面的示例中,该文件将分别称为“foo_extension.rb”和“foo_bar_extension.rb”。