如何在Sinatra应用程序中使用Rails引擎?

时间:2013-09-06 15:23:04

标签: ruby-on-rails-3 sinatra rails-engines

我已经创建了一个基本的Rails引擎(我正在使用Rails 4),我已经通过Gemfile将它集成到我的主Rails应用程序中:

gem 'app_core', :path => '../app_core'

我还在我的Sinatra应用程序中添加了这个,并且bundle install表示安装在那里的gem。我正在我的辛特拉应用程序中测试这个,如下所示:

get '/products.?:format?' do
  AppCore::Product.all.to_json
end

当我这样做时,我得到:

NameError at /products
uninitialized constant AppCore::Product

任何想法如何解决这个问题?是否可以将引擎集成到Sinatra应用程序中?

1 个答案:

答案 0 :(得分:0)

我能够使用gem而不是Engine来实现这一点。我根本无法使Sinatra使用Rails引擎,但它会使用自定义gem很好。所以,我把它添加到Rails应用程序和Sinatra应用程序Gemfiles:

gem 'app_core', :path => '../app_core'

然后在Sinatra app主文件中我必须这样做:

require 'bundler/setup'
require 'app_core'

瞧!