Rails Rails Console Tips

jun1st · 2014年06月07日 · 最后由 hustjackyan 回复于 2014年08月05日 · 6637 次阅读
本帖已被设为精华帖!

清理Console

当输出满屏时,想清理一下,在bash里可以用clear,在rails console里,可以用

command+k

重新加载rails环境

console环境不会自动加载修改后的文件,怎么办?退出重启?不需要!执行

reload!

搜索历史纪录

执行的command太多,往上可以用 uparrow, 往下可以用downarrow。但是当执行的命令太多时,上下翻历史记录耗费的时间,比直接输入来的更多。其实console有搜索功能,Ctrl+R

[1] pry(main)> reload!
Reloading...
=> true
(reverse-i-search)`r': reload!

输入r出来 reload! . 第一个匹配的记录

Tab补全

tab补全,属性bash的应该对这个都不陌生。

上一个命名的结果

执行完一条命令

>>Article.first

但其实你还想对这个返回的 article 对象继续操作。再执行一遍?

>>article = Article.first

NO! 你可以用

article = _

"_"保存着上一条命令返回的结果

发起HttpRequest

>>app.get /
=> 200
>>app.get /orders
=> 302

Rails沙盒

console可以已沙盒的模式运行,

rails console --sandbox
>>User.destroy(1)
>>exit
     (0.1ms) rollback transaction

Rails环境

想要test环境的console,除了

RAILS_ENV=test rails c

更简单的是

rails c test
共收到 22 条回复

不错,谢谢分享

感谢楼主,补充下 清理Console 其实可以用 ctrl + L ,rails 和 bash,zsh等环境通用,

不错,很实用

保存最后运行结果那个好用!

嗯,学习了 article = _

"_"保存着上一条命令返回的结果 新技能get√

发起HttpRequest 这个真爽。

rails console --sandbox 应该只对支持 rollback 的 active record 有效。像mongodb这些就不起作用了,因为其本身不支持事务 rollback 。另外 command+k ,ctrl + r ,tab 补全 这些功能,在 console 里面也是一样起作用的。

原来是可以测试HttpRequest的.. 学习了

#9楼 @ruby_sky "发起 HttpRequest " ,这个之前真不知道 😄

#13楼 @jun1st http://stackoverflow.com/questions/151030/how-do-i-call-controller-view-methods-from-the-console-in-rails

2.1.1 :001 > app.get '/feed'
=> 200
2.1.1 :002 > response = app.response
 => #<ActionDispatch::TestResponse:0x0000000575fe68 ......
2.1.1 :003 > response.body
 => "<xml>\n    <ToUserName> shunli </ToUserName>\n    <FromUserName>linachan</FromUserName>\n    <CreateTime> 2014-06-10 09:53:45 +0800</CreateTime>\n    <MsgType>20</MsgType>\n    <Content> hello world!  </Content>\n    <FuncFlag>0</FuncFlag>\n</xml>\n" 
2.1.1 :004 > response.cookies
 => {"request_method"=>"GET"} 

#14楼 @chanshunli 要在console里测试view的helper的话,可以用helper.xx

app.get 竟然还有这个,爽

不错,确实有几个不知道。。。

#2楼 @wcc526 CL应该是打印很多空白行然后在输出吧。其实上面记录没有清理掉啊。CK这样子 是把整个屏幕擦掉吧。

#18楼 @crazyphage 这样不行吗?

cmd + k 这些估计是通用的吧 "_"保存最后运行结果、HttpRequest 这两个:plus1:

23楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册