这个问题说了1000个单词,但我基本上想做的是构建一个机车CMS插件,而我只停留在基础上。这不是一件好事。
我遵循了这颗宝石的说明,因为这是我能找到的唯一参考资料:https://github.com/colibri-software/locomotive_plugins
我已将locomotive_plugins
添加到我的gemfile中。我制作了一个名为locomotive_test_plugin.rb
的文件,并将其放在lib
文件夹中(我发现这是放置该文件的合理位置,因为它在gem说明中没有明确说明)。我确实将lib
文件夹添加到了application.rb
中的config.autoload_paths
中。我有点希望它能起作用
motive_test_plugin.rb看起来像
class LocomotiveTestPlugin
include Locomotive::Plugin
def initialize_plugin
# Custom initialization code
end
def to_liquid
{:test => "test"}
end
end
LocomotivePlugins::register_plugin(LocomotiveTestPlugin, "test_plugin")
事实证明并没有。我还制作了一个名为locomotive_test_plugin
的自定义gem
,安装了gem并将该gem添加到Gemfile中,如:
source 'https://rubygems.org'
gem 'locomotive_cms', '~> 2.0.1', :require => 'locomotive/engine'
gem 'locomotive_plugins'
group :assets do
gem 'compass-rails', '~> 1.0.2'
gem 'sass-rails', '~> 3.2.4'
gem 'coffee-rails', '~> 3.2.2'
gem 'uglifier', '~> 1.2.4'
# If you run your engine on **Linux,** you also have to add the following gem
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
end
group :development do
gem 'unicorn'
end
group(:locomotive_plugins) do
gem 'locomotive_test_plugin'
end
根据gem,我现在可以编辑CMS中的任何页面,并添加以下液体代码:
{{ plugins.test_plugin.test }}
我希望输出是"测试"的,但它什么也没显示。它也不会显示任何错误,比如"找不到插件"或类似的东西。
如果有人建议的话,我已经重新启动了本地服务器。
但在这个过程中,我哪里出了问题——有人能告诉我这个问题吗。
首先,行
LocomotivePlugins::register_plugin(LocomotiveTestPlugin, "test_plugin")
不需要。这是来自旧版本的插件。至于你的问题,你在你的网站上植入了插件吗?你需要转到"设置"页面,有一个名为"插件"的折叠部分,下面应该有一个带复选框的条目。请确保选中该框。
如果条目没有显示,则说明插件没有正确加载。确保在启动服务器时加载了代码(在顶部添加一个打印stmt)。