无法从安装有rails 4的gem中加载文件

时间:2014-02-08 09:32:14

标签: ruby-on-rails sprockets spine.js

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

  

rails g spine:new

在生成的app文件夹中,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无法加载它们。

任何解决方案? :)

1 个答案:

答案 0 :(得分:0)

gem 'json2-rails'添加到您的gemfile。

这为我解决了同样的问题。但是,它不应该是必要的,因为脊柱轨道将宝石作为依赖。

修改

在发布这个答案之后,当我在处理另一个项目时碰巧看spine-rails github repo时,我确认了我的答案。它说:

  

在Gemfile中,添加以下行:

     

gem“json2-rails”

     

gem“spine-rails”

因此,您必须在gemfile中包含json2-rails gem。