Ruby on rails 无法从使用rails 4安装的gems加载文件

Ruby on rails 无法从使用rails 4安装的gems加载文件,ruby-on-rails,sprockets,spine.js,Ruby On Rails,Sprockets,Spine.js,我正在开发一个Web应用程序,使用rails 4和spine js作为前端mvc框架。 安装了gem'spine rails'后,我运行了命令 rails g spine:全新 在生成的应用程序文件夹中,index.js.coffee文件加载一些第三方资产 #= require json2 #= require jquery #= require spine #= require spine/manager #= require spine/ajax #= require spine/route

我正在开发一个Web应用程序,使用rails 4和spine js作为前端mvc框架。 安装了gem'spine rails'后,我运行了命令

rails g spine:全新

在生成的应用程序文件夹中,index.js.coffee文件加载一些第三方资产

#= require json2
#= require jquery
#= require spine
#= require spine/manager
#= require spine/ajax
#= require spine/route

#= require_tree ./lib
#= require_self
#= require_tree ./models
#= require_tree ./controllers
#= require_tree ./views

class Frontend extends Spine.Controller
  constructor: ->
    super

    # Initialize controllers:
    #  @append(@items = new Frontend.Items)
    #  ...

    Spine.Route.setup()    

window.Frontend = Frontend
在运行服务器时,出现了一个错误

Sprockets::FileNotFound at /
couldn't find file 'json2' (in /Users/edward/git/beta-cafe/app/assets/javascripts/frontend/index.js.coffee:1)
似乎有json2、spine、spine/ajax等js文件加载到gem文件夹中,但Rails无法加载它们


有什么解决办法吗?:)

gem'json2rails'
添加到您的gem文件中

这为我解决了同样的问题。不过,这不应该是必要的,因为spine rails将该gem作为一个依赖项

编辑 在发布了这个答案之后,当我在另一个项目中工作时偶然看到了这个问题时,我确认了我的答案。它说:

在文件中,添加以下行:

gem“json2rails”

宝石“脊梁”


因此,您必须在gem文件中包含json2 rails gem。

尝试在config/application.rb中要求json2,并将其从index.js.coffee中删除。