【问题标题】:New Rails 3.1.3 + Datamapper routing assets issue新 Rails 3.1.3 + Datamapper 路由资产问题
【发布时间】:2012-01-04 19:50:46
【问题描述】:

我渴望在新的 Rails 项目中试用 DataMapper。我使用以下命令创建了我的项目:

rails new project_name -m http://datamapper.org/templates/rails.rb

我决定通过运行来测试我的应用程序:

rails server

当我转到创建的通用主页时,我看不到任何图像。我收到一条错误消息:

ActionController::RoutingError (No route matches [GET] "/assets/rails.png")

如果我创建任何其他脚手架并访问这些页面,我会收到关于样式表或找不到 javascript 的类似错误。我再次检查以确保常规的 Activerecord-rails 应用程序正常工作(确实如此)。我比较纳闷。任何帮助将不胜感激。谢谢你:)

【问题讨论】:

  • 为什么是"/asets/rails.png" 而不是"/assets/rails.png"
  • 糟糕!我的意思是资产;)我会改变它

标签: ruby-on-rails ruby ruby-datamapper


【解决方案1】:

出于某种原因,DataMapper 的 Rails 模板完全替换了标准的 Gemfile 与他们自己的,它不包括任何资产处理的东西(它还删除了一些其他的东西,如 jQuery 支持、TestUnit、ActionMailer.. .).

您需要在设置新应用程序后将这些重新添加到您的 Gemfile

group :assets do
  gem 'sass-rails',   '~> 3.1.5'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

根据 Frederick 在下面的建议,您还需要将其添加到您的 config/application.rb 文件中:

require 'sprockets/railtie'

I opened an Issuesubmitted a pull request 来解决这个问题。

更新:截至 2012 年 1 月 5 日,此问题现已修复。该模板的行为与标准 Rails 3.1 应用程序几乎相同,唯一的变化是将 ActiveRecord 替换为 DataMapper。 Assets/jQuery 支持现在可以工作了。

【讨论】:

  • 它还将 application.rb 中的 require 'rails/all' 更改为明确的框架列表,但错过了 3.1 中用于交付资产内容的 sprockets。将require 'sprockets/railtie' 添加到 application.rb 应该会有所帮助。
  • 谢谢迪伦和弗雷德里克 =)
猜你喜欢
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
相关资源
最近更新 更多