对ruby on rails 入门学习,进行全栈项目练习,本篇主要是对ror语法学习和全栈开发的一个了解,其中依据的是里克的《Rails 实践》,与《Ruby on Rails 實戰聖經》,在此特别感谢前辈们无私奉献,乐于分享的精神。
IDE-RubyMine 快捷键
一级基础
Ctrl+Alt+G:弹出Generate
Ctrl+Alt+L:格式化代码
Alt+F1:切换视图(Project, Structure, etc.).
Alt+F2:弹出预览窗口,可选择浏览器打开网页
Alt+Insert:相当于File|New,不过要在class外执行
Alt+Enter:快速修复提示,相当于Eclipse的Alt+F1
Alt+Home:显示文件夹导航条
Ctrl+J:插入动态模板代码,非常方便。Ctrl+Alt+J:用动态模板包围选中代码
Ctrl+/,Ctrl+Shift+/:注释,去注释代码
Ctrl+Space:代码自动补全,相当于Eclipse的Alt+/。建议修改为Alt+/
Ctrl+Q:显示文档Doc
Ctrl+W:动态选择,多次按依次选择 单词-行-段-全
Ctrl+D:复制一行
Ctrl+Y:删除一行
Shift+Alt+N:在Controller,Model,View间跳转
Shift+Alt+F10:运行,Dubug
二级进阶
Alt+Home:显示导航条
Alt+F1:在不同视图中切换 (Project, Structure, etc.).
Ctrl+Tab:在tool窗口和打开的文件窗口中切换
Ctrl+F:在当前文件中查找
Ctrl+Shift+F:在文件夹中查找
Ctrl+Shift+F7:快速显示选中代码的调用
Ctrl+Shift+.:在*.html.erb文件中插入
Ctrl+N,Ctrl+Shift+N,Ctrl+Shift+Alt+N:通过名字查找类,文件,符号
Ctrl+Shift+T:To surround a block of code
Ctrl+Alt+D:显示Model关系图,即ER图。View | Show Model Dependency Diagram
三级耍酷
a.界面调整
Esc:从任何界面返回到编辑器
Shift+Esc:回到编辑器,隐藏所有工具栏
Shift+F6:重命名,文件,方法名,类名,变量名等
F12:相当于Shift+Esc的回退键,显示最后一次打开的工具栏
b.变量选择
Ctrl+Shfit+F7:高亮显示本文件中变量出现的位置
F3,Shift+F3:在不同变量之间跳转
Esc:取消选择
Alt+Left, Alt+Right: 在不同的Tabs中切换
Ctrl+点击Tab:弹出路径框,选择后会在新窗口打开。
Ctrl+E:弹出最近打开的文件选择框
Ctrl+Shift+Up, Ctrl+Shift+Down:把代码住上移和住下移
Ctrl+Shift+Backspace:光标移动到上次修改的位置
Ctrl++,Ctrl+-:展开或收缩代码
Ctrl+Shift++,Ctrl+Shift+-:全部展开或收缩代码
Ctrl+~:切换主题,配色等(一般默认会被输入法占用)
更改快捷键
示例:把代码提示快捷键由Alt+Space改为Ctrl+Alt+/
打开File»Setting»Keymap
找到Main menu»Code»Complete Code»Basic,选择右边的“Add Keyboard Shortcut”
在弹出的框里光标放到输入框,同时按下:Ctrl+Alt+/
成功后应用保存,即可生效
理清概念
目录映射
一般情况下,进行开发时,源代码保存在宿主机中,方便地使用 IDE 等工具, 虚拟机环境一般只用来运行代码,所以这里就需要使用目录映射功能,将本地的目录映射到虚拟机的对应目录
默认情况下,当前的工作目录,会被映射到虚拟机的 /vagrant 目录, 当前目录下的文件可以直接在 /vagrant 下进行访问
config.vm.synced_folder “D:/workspace”, “/home/vagrant/workspace”
say hello
Rails是MVC框架,显示Hello World!不需要用到数据库,所以我们只要先写Controller和View,以及让路由指派到这个Controller即可,输入以下指令就会产生出一个叫做welcome的空Controller档案:
$bin/rails generate controller welcome
依次修改相应文件,按MVC架构
设定及建立数据库
Rails的数据库设定档是config/database.yml,如果你打开这个档案,默认的设定是SQLite3。这个档案里包含三段不同环境的设定,对应到三个Rails执行环境:
- development 开发模式,用在你的开发的时候
- test 测试模式,用在执行自动测试时
- production 正式上线模式,用在实际的上线运作环境
YAML是一种可读性高,用来表达设定资料的资料格式。它严格要求缩排(建议为两个空白),且冒号后面必须有一个空格。一般我们会预期YAML的值解析出来是字串,因此如果内容是数字或多行文字时,建议加上引号以避免字串解析错误。例如 password: “123456”。如果没有加上引号,这串数字会被解析成Fixnum物件而不是字串String,后续可能造成型别判断错误。
| 档案 | 说明 |
|---|---|
| migrate/20141021135430_create_people.rb | 用来建立people数据库资料表的Migration(你的档案开头名称会有不同的时间) |
| app/models/person.rb | person model档案 |
| app/controllers/people_controller.rb | people controller档案 |
| app/views/people/index.html.erb | 用来显示所有文章的index页面 |
| app/views/people/edit.html.erb | 用来编辑文章的页面 |
| app/views/people/show.html.erb | 用来显示特定一篇文章的页面 |
| app/views/people/new.html.erb | 用来新增文章的页面 |
| app/views/people/_form.html.erb | 用来显示编辑和新增文章的表单局部(Partial)样板 |
| app/helpers/people_helper.rb | 可在文章Views中使用的Helper方法 |
| config/routes.rb | 设定URL路由规则的档案,scaffold再此新增了一行resources :people |
| app/assets/stylesheets/scaffold.scss | Scaffold鹰架提供的样式档案 |
| app/assets/stylesheets/people.scss | people的CSS样式档案 |
| app/assets/javascripts/people.coffee | people的JavaScript档案 |
常见错误-SyntaxError: unexpected $end
SyntaxError加上unexpected $end, expecting keyword_end的话,那一定是你少了(或多了)end关键字,def跟do都必须要有对应的end。不过很可惜Rails没办法提示你是那一行少了(或多了)end,发生错误的行数都会告诉你是最后一行。如果真的不太好找,你可以单独用ruby -w去执行发生错误的程式,例如ruby -w app/controller/welcome_controller,这会打开Ruby的警告模式来获得更准确的语法错误讯息。