Mingdong's Blog

自定义 Rails 的 field_error_proc

Rails 的数据验证配合表单帮助方法会自动为出错的表单信息产生一个 input 的 html 包裹元素,默认是一个 class=”field-with-errors” 的 div,详情:Displaying Validation Errors in Views。但是很多前端框架有自己自定义的错误样式,所以需要覆盖 field_error_proc 来自定义错误表单。 方法1:如果只需要修改此包裹元素,找到 config/application.rb 在 class Application < Rails::Application 中添加 1 2 3config.action_view.field_error_proc = Proc.new { |html_tag,...

Atom 第三方插件包推荐

随着 Atom 1.0 发布,感觉性能上做了很大的优化,比起 0.x 版本卡顿已经完全可以接受。而且侧边栏 git 状态颜色、与 GitHub Desktop 的整合一直都是 Sublime Text 等编辑器无法媲美的功能。 最近把原来的版本卸载掉在官网重新下载了很多第三方插件包,基本可以实现 ST3 的大部分功能。下面就罗列一下安装的这些 Package,具体的效果可以点链接去看。 dash: file-icon : 侧边栏文件图标,根据文件类型显示不同的图标,大部分文件都支持 highlight-selected : 和 ST 中一样,把双击选择的文字框起来,并且把整个文件里的相同的文字也框起来 html2haml : 把...

Rails 为 Controller 指定 JS 和 CSS

新建的 Rails App 的 app/assets/javascript/application.js 中通常会有以下两项: 1 2//= require_tree . //= require turbolinks 第一项的作用是启用递归调用,将 assets/javascript/下的所有文件包括子文件夹下的文件全部包含到页面中,CSS 同理。第二项的作用是启用 turbolinks 机制,即点击页面上的应用内的跳转链接,会通过 Ajax 比较两个页面的不同从而快速加载。 这两个功能造成了几个坑爹的现象: 页面会一次性加载所有的 CSS 文件,如果对于不同的 Controller 下的 view 使用了同名的 CSS 选择器名,则会出现冲突...

重置终端提示符

因为 rvm 版本原因,终端(Terminal)的命令 `$ 符号前指示设备名的字符变成了 125,之前也变过,不知道怎么恢复的了。网上查了一下原来那串个叫 Prompt(提示符)。 通过命令: PS1='$(networksetup -getcomputername):\W \u\$ ' 可以恢复到 Mac 默认的提示符,(来源: How to return terminal prompt to default? | Apple Support Communities) 具体每个参数的意义参考(来源: Learning the bash...

管理 Rails 前端框架或库的最佳方法

对于 Node.js 家族,Bower 是比较流行的用来管理各种框架的工具。对于 Rails,普通的方法是在 RubyGems 上找需要的前端框架对应的 Gem,并添加到 Gemfile 中。但这种方法并不能很好的解决依赖关系,而且大多数的这种 Gem 是由第三方的开发者开发,并不能保证框架的原汁原味以及与最新版同步。 后来发现个网站:Rails Assets 可以很好的解决这个问题,相当于 Bundler 和 Bower 之间的桥梁。直接搜索需要的框架名,安装指示将其添加到 Gemfile,运行 Bundle Install,然后在 application.js、application.css 或者其他地方引用框架即可。 Update 2015-03-13: 事实证明这个方法并不一定不好用,比如最近在做一个 Rails 应用需要用到 Semantic...

Facebook Open Academy 2015 活动美国行总结

Facebook Open Academy 是由斯坦福大学教授同时也是 Facebook 现代化教育负责人的 Jay Borenstein 发起,由 Facebook 赞助的一个活动。每年召集全球知名高校学生、教职员工以及知名开源项目负责人来到 Facebook 总部进行为期两天的见面交流及现场 Hackathon。 这次有幸代表四川大学参加 2015 年的 Open Academy 活动,参加 Ruby on Rails 项目的开发维护。这一星期短暂的美国之行收获颇多,在此应学院老师要求写一篇总结记录一下这次活动的经过。 经过了在学校近 20 天的集训、准备护照签证、兑换美元等前期准备,我们 8 个学生及两位老师于 2015...

MacOS 下的一款出色的鼠标辅助软件

MacOS 下使用原生 Magic Mouse 无法实现鼠标中键点击的功能,买了个罗技的鼠标也只能标准的三键得到了支持, 四向滚轮的左右切换在 Mac 下没有作用,官方的 Mac 驱动装上了根本不能识别出鼠标。直到知道了 BetterTouchTool 这款软件。在官网可免费下载使用,功能非常强大,可对 Magic Mouse、外置触摸板 (TrackPads)、外置键盘、苹果遥控器、普通鼠标、iPhone 等设备的按键进行个性化配置。 为 Magic Mouse 设置鼠标中键点击 我的设置是单指中间轻触(tap)事件以及双指轻触事件绑定到鼠标中键点击(click) 普通鼠标四向滚轮左右切换全屏窗口 我的设置是把四向滚轮左右点击事件绑定到键盘的 control 键加左右方向键的模式

MacOS X 连上 Wi-Fi 后任务栏图标仍带感叹号

配置无线网络的时候,可能是由于路由器的 DNS 配置有问题,导致电脑 Wi-Fi 连上了也能访问 Internet,但是任务栏图标还是会出现带感叹号的图标: 提示信息是: No Internet Connection… 解决这个问题的方法很多,网上甚至有通过 Terminal 删除配置文件的做法,但其实有个更简单的方法: 打开 Network Preferences 在窗口的顶部有个 Location 选项,点击它选 Edit Locations,添加一项,确定后点 Apply 这时候会重新连接网络,连上了应该就会回到正常的网络图标了。 使用 Location 选项还能用来切换网络 DNS ,使用路由器的时候选择配置了 8.8.8.8 的...

配置 GitHub 提交代码时区

GitHub 上的 帮助文档 说明了对于用户操作时区的计算方法,对于 commit 使用 commit 中 timestamp 所包含的时区来计算时间;对于在 Github 上的 Pull requests 和 issues ,使用浏览器的时区计算。如果不对本地 git 的时区进行配置,每次 commit 的时区是美国西海岸太平洋时区 PST(UTC-8),所以在国内要到下午的4点以后提交的 commit 才会算成今天提交的。 使用一天简单的命令即可把这个时区更改成操作系统设置的时区: git config --global log.date local...

使用 nginx 和 unicorn 部署多个 Rails 应用

nginx 做反向代理是很常见的做法,unicron 是比较流行的 Ruby 语言的 HTTP 服务器,这两者结合起来在一台服务器上部署多个 Rails 程序也是一种常见的应用场景。本文将介绍如何配置及启动服务。 1. unicorn 配置文件 在 Rails 应用目录下新建文件 config/unicorn.rb 并在 unicorn.rb 文件中添加 # Set the working application directory # working_directory "/path/to/your/app" working_directory "/home/todos"...