rails初体验

2015-12-06  本文已影响253人  洗阳光

很久没有来更新了,因为最近自己在新浪云上面搭建了个wordpress玩,但是还没有弄上markdown的插件,所以还是现在这里写,那边再复制过去。

以下是正题


为什么会有rails

rails初体验

rails上线

其实rubychina上面的会更全,我之所以写来是为了帮自己理清思路和加深印象
  • 这个命令会在文件夹 blog 中新建一个 Rails 程序,然后执行 bundle install命令安装 Gemfile 中列出的 gem。
  • 执行 rails new -h
    可以查看新程序生成器的所有命令行选项。

blog 文件夹中有很多自动生成的文件和文件夹,组成一个 Rails 程序。本文大部分时间都花在 app文件夹上。下面简单介绍默认生成的文件和文件夹的作用:

文件/文件夹 作用
app/ 存放程序的控制器、模型、视图、帮助方法、邮件和静态资源文件。本文主要关注的是这个文件夹。
bin/ 存放运行程序的 rails脚本,以及其他用来部署或运行程序的脚本。
config/ 设置程序的路由,数据库等。详情参阅“设置 Rails 程序”一文。
config.ru 基于 Rack 服务器的程序设置,用来启动程序。
db/ 存放当前数据库的模式,以及数据库迁移文件。
Gemfile, Gemfile.lock 这两个文件用来指定程序所需的 gem 依赖件,用于 Bundler gem。关于 Bundler 的详细介绍,请访问 Bundler 官网
lib/ 程序的扩展模块。
log/ 程序的日志文件。
public/ 唯一对外开放的文件夹,存放静态文件和编译后的资源文件。
Rakefile 保存并加载可在命令行中执行的任务。任务在 Rails 的各组件中定义。如果想添加自己的任务,不要修改这个文件,把任务保存在 lib/tasks文件夹中。
README.rdoc 程序的简单说明。你应该修改这个文件,告诉其他人这个程序的作用,如何安装等。
test/ 单元测试,固件等测试用文件。详情参阅“测试 Rails 程序”一文。
tmp/ 临时文件,例如缓存,PID,会话文件。
vendor/ 存放第三方代码。经常用来放第三方 gem。

上述命令会启动 WEBrick,这是 Ruby 内置的服务器。要查看程序,请打开一个浏览器窗口,访问http://localhost:3000。应该会看到默认的 Rails 信息页面

显示“Hello, Rails!”

  • 要在 Rails 中显示“Hello, Rails!”,需要新建一个控制器和视图。

运行上述命令后,Rails 会生成很多文件,以及一个路由。
create app/controllers/welcome_controller.rb
route get 'welcome/index'
invoke erb
create app/views/welcome
create app/views/welcome/index.html.erb
invoke test_unit
create test/controllers/welcome_controller_test.rb
invoke helper
create app/helpers/welcome_helper.rb
invoke assets
invoke coffee
create app/assets/javascripts/welcome.js.coffee
invoke scss
create app/assets/stylesheets/welcome.css.scss


我们已经创建了控制器和视图,现在要告诉 Rails 在哪个地址上显示“Hello, Rails!”。这里,我们希望访问根地址 http://localhost:3000 时显示。但是现在显示的还是欢迎页面。
我们要告诉 Rails 真正的首页是什么。在编辑器中打开 config/routes.rb 文件。

Rails.application.routes.draw do 
get 'welcome/index'

# The priority is based upon order of creation:
# first created -> highest priority.
# You can have the root of your site routed with "root"
# root 'welcome#index'
#
# ...

这是程序的路由文件,使用特殊的 DSL(domain-specific language,领域专属语言)编写,告知 Rails 请求应该发往哪个控制器和动作。文件中有很多注释,举例说明如何定义路由。其中有一行说明了如何指定控制器和动作设置网站的根路由。找到以 root
开头的代码行,去掉注释,变成这样:

root
'welcome#index'

root 'welcome#index'
上一篇 下一篇

猜你喜欢

热点阅读