此警报已接触,请直接升级到rails3.1.0.rc5 和 sprockets.2.0.0.beta.13
sprockets-2.0.0.beta.10以后版本的一个微小改动会让r3.1的assets pipeline无法找到assets资源。
sprockets目前的版本是2.0.0.beta.12,一个多月前发布的2.0.0.beta.11版本已经出现同样问题,所幸在那个版本发布后不久就被从gem库中移除(也许就是因为这个问题),但刚刚发布的2.0.0.beta.12依然没有做出针对性的修复。
这个引发问题的改动很简单,但是我自己对于这个问题的修复很矛盾。这个问题的原因是一个看起来相当有道理的变化,故事说起来有点长,简单的举个例子来说明:
原因是由于一个数组赋值的语句发生了一点微小的变化:
在sprockets-2.0.0.beta.10是这么作的:
#需求是把b数组拼接到a数组里
a = [ 1 , 2 , 3 ]
b = [ 4 , 5 , 6 ]
#在sprockets-2.0.0.beta.10是这么实现的
a.concat b #=> a = [ 1 , 2 , 3 , 4 , 5 , 6 ]
从sprockets-2.0.0.beta.11以后版本是这么作的:
#需求是把b数组拼接到a数组里
a = [ 1 , 2 , 3 ]
b = [ 4 , 5 , 6 ]
#在sprockets-2.0.0.beta.11以后是这么实现的
a.dup.concat b #=> 毫无疑问: a = [ 1 , 2 , 3 ]
想确认的同学可以在console下反复输入几次以下代码:
Rails.application.assets.paths.id
在sprockets-2.0.0.beta.10下每次返回的结果都是一样的,在sprockets-2.0.0.beta.11以后每次结果都不一样,就是因为这个paths方法里多了个dup。
对于这个问题我决定不自己动手修复,一方面sprocket没有什么错,为一个array作getter,出于数据安全的考虑,用dup是可以理解的;另一方面,rails本身也确实没有什么更好的办法来接触这个对象。在哪头改好像都不太合适,干脆等他们自己掰吃明白的吧。
分享到:
相关推荐
为 Rails 3.1+ 资产管道提供 GitHub Flavored Markdown CSS。 安装 将这些行添加到应用程序的Gemfile : # github flavored markdown css packaged for the rails asset pipeline gem 'github-css-rails' , '~> ...
在添加同时使用,并充分利用Rails 3.1资产管道。 jasmine-stories消除了您没有测试失控应用程序的任何借口。 该项目,是的无耻“叉子”,并使用了MIT-LICENSE。 无头测试 有关详细信息,请参见。 默认情况下,将...
-rails gem 将通过资产管道将库包含到您的Rails 3.1+应用程序中。 这个 gem 与来自的最后一个标记发布版本捆绑在一起,它由 Rails Assets Pipeline 自动为您缩小。 如果您需要自定义功能检测测试,请考虑本 README ...
您可能在使用低于 3.1 的 Rails 版本时遇到问题。 要使用 MongoidShortener,首先你必须安装 gem。 # Gemfile gem "mongoid_shortener" gem "yab62" , require : "yab62" # Terminal bundle install 之后,确保...
铁轨这个 gem 只包含作为 Rails 3.1(或更高版本)资产管道中的资产。 gem 中的当前版本是 TipTip 1.3安装将 gem 添加到 Gemfile gem "tiptip-rails", "~> 1.0.0"用法在您的 JavaScript 清单中(例如application.js ...
gem 'sprockets-rails' , :require => 'sprockets/railtie' 或者,如果禁用了Bundler自动请求功能,则在config/application.rb require 'sprockets/railtie' 。 用法 耙任务 rake assets:precompile 将config....
茉莉香米 利用并充分利用Rails 3.1资产管道的好处Jasminerice消除了您没有测试CoffeeScript文件无法控制的泛滥的借口。 该项目动摇并使用了MIT-LICENSE...该gem已通过Rails 3.1和3.2的测试和运行。 它也应该在Rails 4
脚本以用于 Rails 3.1+ 和 Rails 4 资产管道。 安装 将jquery_file_download-rails添加到应用程序的Gemfile : gem 'jquery_file_download-rails' 运行 Bundler 来锁定 gem: bundle install 在jquery和jquery...
tiny_mce, Ruby on Rails 插件( pre Rails 3.1 ),允许你轻松地将TinyMCE编辑器实现到你的应用程序中 用于 Rails的 TinyMCE因为我没有时间维护它,而且代码库处于不一致状态,所以这个 gem 被折旧 ! 似乎如下笔记。...
### 敏捷Web开发与Rails 4th Edition (Rails 3.1)——全面解析 #### 核心知识点概述 《敏捷Web开发与Rails》第四版涵盖了最新的Rails 3.1版本,是一本旨在帮助开发者快速掌握Ruby on Rails框架的核心书籍。本书...
这是最新的Rails 3.1 实战,包括TDD、BDD等实用技术。
标题 "rails3.1安装与mysql配置 windows" 涉及到的是在Windows操作系统上安装Ruby on Rails 3.1框架并配置MySQL数据库的过程。这是一个关键的开发环境设置步骤,对于使用Rails进行Web开发的程序员来说至关重要。Ruby...
backbone-rails, 在 Rails 3.1中轻松使用 backbone.js 主干 rails 轻松设置并使用 Rails 3.1和更高版本的backbone.js ( 1.2.2 )##Version#####Github 主 branch###gem 版本:1.2.2Backbone 版本:1.
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
jqgrid-jquery-rails 由Doc Walker认可提供为Rails 3.1+资产管道打包的jqGrid jQuery插件。安装将这些行添加到应用程序的Gemfile : # jqgrid jquery plugin packaged for the rails asset pipelinegem 'jqgrid-...
桌布栏杆 Doc Walker 宝石化提供为 Rails 3.1+ 资产管道打包的Tablecloth JavaScript/CSS。安装将这些行添加到应用程序的Gemfile : # tablecloth table js/css packaged for the rails asset pipelinegem '...
咖啡豆Rails 3.1包含了轰动。... 在您的Rails 3.x项目中(是的,这在Rails 3.0.x和Rails 3.1中都可以使用)将以下内容添加到您的Gemfile : gem 'coffeebeans' 然后运行: $ bundle install 就是这样!
还提供了一篇很棒的教程,名为“ ”,如果您刚开始使用Rails和Ember.js,这是一本很好的读物。 入门 将gem添加到您的应用程序Gemfile中: gem 'ember-rails' # gem 'ember-source' # You can specify the Ember.js...
提供为 Rails 3.1+ 资产管道打包的qTip2 jQuery 插件。 安装 将这些行添加到应用程序的Gemfile : # qtip2 jquery plugin packaged for the rails asset pipeline gem 'qtip2-jquery-rails' , '~> 2.2.100' 然后...
该项目允许您在 Rails 3.1 应用程序中轻松使用 iPhone 样式的复选框。 安装 将gem 'ios-checkboxes'添加到 Gemfile 并运行bundle install 与 Rails 3.1 一起使用 将//=require ios-checkboxes添加到您的app/assets/...