bundle exec rake db:migrate
bundle exec rake db:seed
bundle exec rake spree_sample:load
可以看到当前页面及每个资源的加载时间,还可以看当前页面执行的sql语句,再也不用盯着console看运行日志了。
举个例子,在不同的窗口分别运行下面两行代码:
rails s -b 192.168.0.68
rails s -b 192.168.0.68 -p 3001 -P tmp/pids/pid2.pid
即可运行不同的实例,各用各的端口,各用各的pid文件,访问两个不同的端口地址的时候,日志互不影响
默认安装的dotenv-rails的版本是2.0.1,运行时出现错误:
/Users/gs/.rvm/gems/ruby-2.2.1@rails420/gems/railties-4.2.0/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `eager_load_paths' for #<Rails::Railtie::Configuration:0x007fb329e66660> (NoMethodError)
from /Users/gs...
rvm 2.2.1 --default #设置默认ruby版本
rvm gemset create rails420 #创建gemset
rvm 2.2.1@rails420 --default #设置这个gemset为系统默认
rvm gemset delete rails420 #删除gemset
设置回系统默认版本:
rvm use system
设置某个版本(前提是这个版本已经安装):
rvm 2.2.1 --default
# gem env
得到gem的PATH路径,比如
- GEM PATHS:
- /usr/local/ruby/lib/ruby/gems/2.1.0
- /home/vagrant/.gem/ruby/2.1.0
将其下的cache目录删除,再次执行gem安装的时候就不会出错了
rails new my_app --skip-bundle
cd my_app
bundle install --local
转自:http://rubyer.me/blog/941/
ruby1.9开始对字符串编码支持已经比较完善,我们可以直接通过使用String类的实例方法encoding, force_encoding, encode, encode!进行相关的编码操作。
encoding
ruby1.9中为每个字符串对象增加了encoding信息
1.9.3p392 :001 > '我还是不懂'.encoding
=> #<Encoding:UTF-8>
1.9.3p392 :002 >
force_encoding
某些情况下这个附加编码信息可能不正确我们可以修正它
...
windows下用RailsInstaller安装的ruby和rails gem install mysql2 的时候出现错误,从网上找的各种方法都不行,windows平台开发ruby果然是各种折腾,找到stackoverflow,一个安装低版本的建议,竟然成功了
gem install mysql2 -v 0.2.6
出处 http://stackoverflow.com/questions/5367563/unable-to-install-mysql2-gem-on-windows-7
这篇博客里说的很明白 http://razius.com/articles/launching-services-after-vagrant-mount/
原因是启动nginx的时候本地目录还没映射到虚拟机,nginx当然启动不了,解决办法就是在目录映射完以后再次启动nginx。
vi /etc/init/vagrant.conf;
加入以下内容:
# nginx
description "nginx http daemon"
author "Silviu Tantos"
# Listen and ...
做Web开发少不了要在本地搭建好开发环境,虽然说目前各种脚本都有对应的Windows版,甚至是一键安装包,但很多时候和Windows环境的
相性并不是那么好,各麻烦的问题是实际部署的环境通常是Linux,常常还要面临着开发和部署环境不一致,上线前还要大量的调试。更要命的是,如果有很多
机器需要装的话,那就真是一个灾难了。
Windows下玩Linux少不了虚拟机,但装系统依旧是相当费事。在现在什么都在自动化的今天,Vagrant就是这么一个神器,基于Ruby开发,使用开源 VirtualBox 作为虚拟化支持,可以轻松的跨平台部署。
今天试着把几台机器的...
[4] pry(main)> Array.ancestors
=> [Array, Enumerable, Object, PP::ObjectMixin, Kernel, BasicObject]
[5] pry(main)> String.ancestors
=> [String, Comparable, Object, PP::ObjectMixin, Kernel, BasicObject]
$! 最近一次的错误信息
$@ 错误产生的位置
$_ gets最近读的字符串
$. 解释器最近读的行数(line number)
$& 最近一次与正则表达式匹配的字符串
$~ 作为子表达式组的最近一次匹配
$n 最近匹配的第n个子表达式(和$~[n]一样)
$= 是否区别大小写的标志
$/ 输入记录分隔符
$\ 输出记录分隔符
$0 Ruby脚本的文件名
$* 命令行参数
$$ 解释器进程ID
$? 最近一次执行的子进程...
常量以大写字母开头,如:Abc、 ABC
全局变量以$开头,如:$a、 $abc、 $b
局部变量以小写字母或下划线开头,如:a、 abc、 _b
类变量以@@开头,如:@@a、 @@abc
实例变量以@开头,如:@a、 @abc、 @b
$ rails g rspec:install
$ pry
[1] pry(main)> a
NameError: undefined local variable or method `a' for main:Object
from (pry):1:in `__pry__'
[2] pry(main)> if 1 == 2
[2] pry(main)* a = 'aaa'
[2] pry(main)* end
=> nil
[3] pry(main)> a
=> nil
ruby的语法有些怪异,倒是挺方便,把
else
a = nil
给省了
这是因为ruby的解释器只...
在需要调试的地方加入一行
binding.pry
然后刷新页面的时候页面就会卡住,在终端就进入了pry的控制台,可以在控制台里面操作当前代码的上下文变量。exit退出
示例代码
class SessionsController < ApplicationController
def new
test = 'hahaha'
binding.pry #运行到这行的时候控制台进入调试模式
end
end
创建session变量:
session[:user_id] = 123
删除session变量:
session[:user_id] = nil
清空所有session:
reset_session
效果不甚理想
#coding: utf-8
`convert -draw "line 5,35 95,5" -pointsize 50 -font ~/Desktop/wqy.ttc label:睁大挂跟 ~/Desktop/test.png`
上面的代码只能生成规则的字体,并且干扰线很细,不能设置变粗,暂时先调用python实现