(('a'..'z').zip ('1'..'26')).each{|e| str = str.gsub(*e)}
复杂的东西就是不好的,上手难,搞出一坨屎一样的代码,维护也困难 我更喜欢用简单明了的,比如 react,比如 rbenv 就好于 rvm
还有一个和 inject() 方法类似的方法 reduce()
config/environments/develop.rb 文件里面 设置 config.assets.debug = false
最最直接的方法就是:
在页面中,手动构造表单 (使用 form_tag ,不用 form_for ) 来提交针对批量 model 的修改信息,然后在对应的控制器的 action 中手动解析提交上来的数据,一条一条的查询出对应的 model 对象信息,新建/修改 相关的信息存入数据库。
Monthly 这个 model 有点多余,
而 MonthlyOvertime 这个 model 应该改名为‘员工加班信息’UserOvertime,对应表 UserOvertimes,表包含字段 UserID, month(integer)【月份】, day_count(integer)【折合天数】
User 直接 has_many UserOvertime, UserOvertime belongs_to User,部门经理在页面上填的每个员工的折合加班天数都可以直接对应写入 UserOvertime 这张表。
这样很简单就能解决你的问题吧。
至于员工的每月加班明细信息可以存于另一张表中。你应该已经有了这张表了。
.html 视图文件应该是不会被编译的吧,原样输出就是了。 编译也只是 assets 目录下的静态资源文件比如 css,图片,js 脚本 等 会被处理并且文件名会被增加上指纹信息。
view 的 help 函数是在服务器端执行的,javascript 代码是在浏览器前端执行的,或许你需要把 storage_in_proper_unit() 的逻辑从后端移到前端?就是在 javascript 中定义一个同样的 storage_in_proper_unit() javascript 函数
简单来说,是因为语言的抽象层次 《黑客与画家》里面作者对此有所讨论。第十章:编程语言解析
http://happycasts.net/ 上有教学视频,花两个小时看完这些:045,055,065,078,086,照着视频里面的步骤做,保证可以成功部署。 (apache + passenger)
试了下,config.assets.precompile 配置项和这个问题无关,无论有无这行代码,assets pipeline 都会处理 semantic-ui 的 woff 文件和.svg 文件,将其输出到 public 文件夹下的相关位置,并且处理后的文件都带有 指纹信息(文件名 icons-f7635aae393b695a44c688db5a0427c3.woff 中间那一串就是指纹信息)
我也试了调整这两个配置项的值 config.assets.compile = true config.assets.digest = true
还是没能解决问题。最后我只能手动将这些文件命中的 指纹值去掉,问题算是解决了。
但是,这个问题不算是从根本上解决,因为这个问题的本质在于,能不能配置 assets pipeline 使得其在预处理某些类型的文件时,不给文件打上指纹标记?
又或者说,若 pipeline 预处理文件后,始终生成的文件带有指纹信息,那么,问题就在于,类似于 semantic-ui 这些 gem 如何去适应这种处理后带有指纹信息的文件?
-------------这世上除了“他爹的 TDD”开发模式,还有“他妈的 TMD”开发,就是 Team Meeting Driven,很多公司有太多太多的会要开了,开会基本上成了每天工作最主要的东西,对于一些管理者来说一星期中居然有 80% 时间都在开会。其实,这么多的会议并不意味着你在管理,只是意味着你对要管的东西完全不知道,需要通过开会来了解。很多会完全是没有议题的,大家坐在一起东拉西扯,非常非常地低效。我通常把这种会叫做“神仙会”,用个流行语来说,就是 Cloud Meeting………… http://coolshell.cn/articles/9156.html#more-9156
不是不使用 pipeline(如果想不使用 pipeline,需要到配置文件里面去关闭这个特性。),而是你可以在使用 pipeline 的情况下去掉/application.js 里面的//= require_tree . 这句。注意 application.js 同时是一个清单列表文件因为它内部有 require**** 这种语句。实际上,你可以根据自己的需要定义多个清单文件,在不同的清单文件中引用对应的 js,然后在页面中引用不同的清单文件。比如:
清单 A.js 的内容 //= require 1.js //= require 2.js 清单 B.js 的内容 //= require 1.js //= require 3.js
然后在你的页面 a.HTML 中: <%= javascript_include_tag "清单 A" %>
页面 B.HTML 中: <%= javascript_include_tag "清单 B" %>
太远了,三环外,每天上班 1~1.5 小时,下班 1~1.5 小时消耗在交通上…… 还是喜欢远程办公。
require_tree . 可以删掉
默认的 app/assets/javascripts/application.js 里面有这么一句
//= require_tree . 它的意思是引用 app/assets/javascripts 文件夹下的所有 js 文件,全部打包成一个,这是 Rails 框架认为合适的默认行为。
但是很多人在这里栽跟头,没有理解 pipeline 工作原理的人会发现 js 工作不正常(重复载入);了解 pipeline 原理的人通常也会删掉这句,用自己的目录结构来组织 js 文件。
所以,如果无法接受将所有 js 文件都打包成一个,那么就去掉这行代码,用自己理解的形式组织代码。
我在安装 rvm 的时候,使用 curl -L https://get.rvm.io | sudo bash -s stable 命令报错无法下载包 'https://github.com/wayneeseguin/rvm/archive/stable.tar.gz' 然后我查看官方文档说明( http://rvm.io/rvm/install ),使用下面的命令 curl -sSL https://get.rvm.io | bash 成功安装了,但是该指令下载的包为https://github.com/wayneeseguin/rvm/archive/master.tar.gz (不是 stable 版而是 master 版),然后根据成功提示,不要忘了执行一下 source /home/【username】/.rvm/scripts/rvm
这大概说明 github.com 时不时的总会抽风一下
把你的 gemfile 里对 selenium-webdriver 的声明写成: gem 'selenium-webdriver', '2.35.1' 然后重新 bundle install 试一试
今天早上(ubuntu 下)终于执行 gem sources -a http://ruby.taobao.org/ 成功添加了淘宝源。系统配置什么的没有做任何改动(不过虚拟机和 ubuntu 系统有重启过),所以基本上我认为前天遇到的问题应该是 ruby.taobao.org 网站有时候响应慢造成的(使用 gem 访问无响应,但是用浏览器访问却正常)。
随后我使用 gem install rails 安装最新 rails,也是经过了一段时间无响应(和前几天的现象一样,无响应或显示错误信息)后,终于开始出现提示从服务器下载各个 gem 包成功,目前正在安装中。
@huacnlee 应该不是你说的那个原因造成的,谢谢你的回答。
我也有这个问题,在 window 下,输入 gem sources -a http://ruby.taobao.org/ 返回结果: Error fetching http://ruby.taobao.org/: server did not return a valid file (http://ruby.taobao.org/specs.4.8.gz)
但是 (http://ruby.taobao.org/specs.4.8.gz) 这个可以通过浏览器访问下载得到。这说明网络链接是没问题的。
在虚拟机 ubuntu 下,输入 gem sources -a http://ruby.taobao.org/ 则长时间没反应 ubuntu 下也可以用 wget 直接下载得到http://ruby.taobao.org/specs.4.8.gz 这个文件的,但是使用 gem 似乎就无法访问网络?
不知道到底是怎么回事?查了很多资料都没有答案,,求大神解答 T_T