1. 创建工程

rails new blog

2.查看下文件结构

tree

输出如下,请留意红圈中的部分。

  • Gemfile, 用来管理应用程序的gems, 有点类似于python的包,有专门的网站来查找gems: https://rubygems.org/
  • app,( application)这将会是你主要花精力的地方,
  • app/assets ,这个下面放的是图片,脚本,样式等静态文件。
  • app/controllers, app/models, app/views , 这三个就是所谓的MVC中的C,M,V
  • config/routes.rb, 这个有点类似于django中的url文件,配置url与controller的actions之间的对应关系。
  • db/seeds.rb, 数据库的创建和迁移(migration)文件所在地。

此外还有一些比较有意思的地方:

  • config/database.yml  , 数据库的配置文件,这里配置了开发/测试/发布数据库
  • 在建立了模型后,默认情况下,db目录下面会有一个development.sqlite3数据库文件
  • test/fixtures下面,在建立模型并migrate后,会生成默认的测试数据: 模型.yml

3. 添加一个名为posts的controller。

创建控制器

按照约定:controller需要用复数表述,首先进入到工程目录,然后创建controller,如下

cd blog
rails g controller posts

遇到错误:

/usr/local/rvm/gems/ruby-2.1.5/gems/execjs-2.2.2/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

报错原因:把 CoffeeScript 编译成 JavaScript 需要 JavaScript 运行时,如果没有运行时,会报错,提示没有 execjs。Mac OS X 和 Windows 一般都提供了 JavaScript 运行时。Rails 生成的 Gemfile 中,安装 therubyracer gem 的代码被注释掉了,如果需要使用这个 gem,请把前面的注释去掉。在 JRuby 中推荐使用 therubyracer。在 JRuby 中生成的 Gemfile 已经包含了这个 gem。所有支持的运行时参见 ExecJS。

编辑 blog/Gemfile 文件,取消注释,如下

gem 'therubyracer',  platforms: :ruby#enable it

然后运行 sudo bindle install 安装依赖项。或者直接

 gem install therubyracer

gem相当于python的easy_install。

再来一次生成controller,正常输出如下:

      create  app/controllers/posts_controller.rb
invoke erb
create app/views/posts
invoke test_unit
create test/controllers/posts_controller_test.rb
invoke helper
create app/helpers/posts_helper.rb
invoke test_unit
create test/helpers/posts_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/posts.js.coffee
invoke scss
create app/assets/stylesheets/posts.css.scss

添加动作action

编辑app/controllers/posts_controller.rb文件,添加index动作(动作可以理解为页面),这个是访问posts/路径的默认页面,如下:

class PostsController < ApplicationController
def index
end
end

添加view

定义了动作,就等于有了一个index页,接下来,需要指定这个页咋渲染,在app/views/posts路径下面新建一个 index.html.erb (默认与动作相同的名字来命名views, erb 指的是 embed ruby, 在这个文件里面可以使用html/js/css/embed ruby)。

编辑内容如下:

<h1>hello world!</h1>
<p>welcome to tommy's blog</p>

添加路由映射

编辑文件:config/routes.rb文件,添加如下路由映射:

Rails.application.routes.draw do
resources :posts

运行服务

接下来运行模拟服务器:

rails s

 

然后可以访问路径: http://localhost:3000/posts  看看输出。如下图:

转载请注明本文来自: http://www.cnblogs.com/Tommy-Yu/p/4140273.html,谢谢!

最新文章

  1. SQL0946N错误及DB2事务日志
  2. CentOS 7下MySQL安装配置
  3. SpringMVC+MyBatis项目分析与开发实例
  4. 测试管理_测试人员招聘[持续更新ing]
  5. 利用Socket与硬件通信(智能家居)
  6. javascript函数式编程(一)
  7. python修炼第六天
  8. Linux命令:source
  9. nGrinder TestRunner DNS / sun.net.spi.nameservice.NameServiceDescriptor
  10. P1_jemeter安装--jdk安装
  11. Spring Boot + Spring Cloud 构建微服务系统(六):熔断监控集群(Turbine)
  12. Windows系统环境下创建mysql主从数据库方法(双向主从复制)
  13. Cisco配置单臂路由及静态路由
  14. python-python爬取豆果网(菜谱信息)
  15. [转]玩转UltraEdit,UE常见快捷键操作
  16. 一篇文看懂Hadoop
  17. linux下php安装
  18. thinkphp3.2----设置静态缓存
  19. java通过FreeMarker模板生成Excel文件之.ftl模板制作
  20. selenium清空元素时,.clear不执行

热门文章

  1. javascript继承(一)—类的属性研究
  2. Ibatis学习总结1--ibatis简介和SQL Maps
  3. SQL注入备忘单
  4. ubuntu14.10建立热点wifi分享给手机
  5. 通过HTTP协议实现多线程下载
  6. 基础总结篇之三:Activity的task相关
  7. 深入解析MySQL分区(Partition)功能
  8. easyUI框架之学习3--表格datagrid
  9. ci中与类名相同 的方法 index控制器 下面index方法 会输出两份
  10. 织梦DedeCms网站更换域名后文章图片路径批量修改