rails框架配置,常用命令总计
分类:计算机编程

rails框架默认有三个模式development(开发),production(上线),test(测试)

有机会再试一试Rails了,只是原来接触的是2,现在已然变成了4,似乎现在的安装比原来会快些。。

使用rails new appname生成Rails应用后,我们可以通过tree命令来查看Rails应用的目录结构:

Development

 config.cache_classes = false 每次请求都会重新加载,修改代码之后可以直接使用。

 config.consider_all_requests_local = true 在本地测试的时候可以显示所有的错误。

 config.action_controller.perform_caching = false 

 config.action_mailer.raise_delivery_errors = false 如果寄信失败,是否要丢出例外。建议可以改成 true。

 config.active_support.deprecation = :log 随着 Rails 版本的升级,如果有方法会在之后的版本中移除,deprecation 会提示你如何因应。这里的 :log 表示会记录到 log 档案中。

 

Rails 4 安装

目录结构

应用程序目录下会有app、bin、config、db、lib、log、public、test、tmp和vendor等11个目录和config.ru、Gemfile、Gemfile.lock、Rakefile、README.md等5个文件。
目录在稍后会一一解释,先看一下app目录下的文件:

  • config.ru 用来启动Rails程序的Rack设置文件
require ::File.expand_path('../config/environment', __FILE__)
run Myapps::Application
  • Gemfile设置Rails程序所依赖的Gems (一旦用bundle install安装后,会生成Gemfile.lock)
source 'https://ruby.taobao.org/'
gem 'rails', '3.2.1'
gem 'sqlite3'
group :assets do
 gem 'sass-rails',  '~> 3.2.3'
 gem 'coffee-rails', '~> 3.2.1'
 gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem ... ...
  • Rakefile 用来载入可以被终端执行的Rake任务

下面是用tree命令查看,所显示的目录和文件结构:

.
├── app
│  ├── assets
│  │  ├── images
│  │  │  └── rails.png
│  │  ├── javascripts
│  │  │  └── application.js
│  │  └── stylesheets
│  │    └── application.css
│  ├── controllers
│  │  └── application_controller.rb
│  ├── helpers
│  │  └── application_helper.rb
│  ├── mailers
│  ├── models
│  └── views
│    └── layouts
│      └── application.html.erb
├── config
│  ├── application.rb
│  ├── boot.rb
│  ├── database.yml
│  ├── environment.rb
│  ├── environments
│  │  ├── development.rb
│  │  ├── production.rb
│  │  └── test.rb
│  ├── initializers
│  │  ├── backtrace_silencers.rb
│  │  ├── inflections.rb
│  │  ├── mime_types.rb
│  │  ├── secret_token.rb
│  │  ├── session_store.rb
│  │  └── wrap_parameters.rb
│  ├── locales
│  │  └── en.yml
│  └── routes.rb
├── config.ru
├── db
│  └── seeds.rb
├── doc
│  └── README_FOR_APP
├── Gemfile
├── lib
│  ├── assets
│  └── tasks
├── log
├── public
│  ├── 404.html
│  ├── 422.html
│  ├── 500.html
│  ├── favicon.ico
│  ├── index.html
│  └── robots.txt
├── Rakefile
├── README.rdoc
├── script
│  └── rails
├── test
│  ├── fixtures
│  ├── functional
│  ├── integration
│  ├── performance
│  │  └── browsing_test.rb
│  ├── test_helper.rb
│  └── unit
├── tmp
│  └── cache
│    └── assets
└── vendor
  ├── assets
  │  ├── javascripts
  │  └── stylesheets
  └── plugins

Production 模式

 config.cache_classes = true 与开发环境不同,把数据保存在内存中,速度更快

 config.action_controller.perform_caching = true 不同于 development,如果在 production 环境出现例外错误,不会显示程式 call stack 讯息,而是回传 public/500.html 页面。

 config.serve_static_assets = false “X-Sendfile” 是网页服务器提供的功能,可以让下载档案的动作完全委派给网页服务器,Rails 送出 X-Sendfile 标头后就毋需再佔住资源。

 config.force_ssl = true 是否限制全站必须SSL才能使用。 

 config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) 可以更换掉 Rails 内建的 Logger,例如换成使用 syslog 的 SyslogLogger。

 config.cache_store = :mem_cache_store 设定不同的快取储存库,默认是 :memory_store,也就是每个 Rails process 各自用内存存放。业界最常用的则是 memcached 内存快取服务器

 config.action_controller.asset_host = "" 默认的静态档案位置是目前主机的 public 目录,你可以透过修改 asset_host 变更位置。例如你的静态档案放在不同台机器或 CDN(Content delivery network) 上。

 

针对于安装了RVM

应用目录(app/)

app目录是Rails程序的主目录,不同子目录分别存放了模型 models (M)、控制器 controller (C)、视图 views (V)及mailers、helpers、channels、 jobs和assets等文档。

Test 模式

 config.action_dispatch.show_exceptions = false 不同于 development 或 production 碰到例外会捕捉例外后,给浏览器显示出 call stack trace 或 public/500.html 画面,在 test 模式就不处理,让例外直接报错。

 config.action_mailer.delivery_method = :test 测试模式下不会真的去寄送email

 config.active_support.deprecation = :stderr 让 deprecation 讯息会直接显示到视窗之中

 

复制代码 代码如下:

模型-控制器-视图

分别存放模型、控制器和视图。其中,模型统一存放在app/models目录下,控制器统一存放在app/controllers目录下(可以使用目录进一步组织控制器,例如admin目录下用于存放管理后台相关的控制器),视图存放在app/views目录下,视图模型存放在app/view/layouts目录下,默认为applicaiton.html.erb。

gem install rails

assets静态文件

assets静态文件存放在app/assets目录下,分别为app/assets/images、app/assets/stylesheets、app/assets/javascripts目录。

没有的话应该这样:

helpers

helpers是一些在视图中可以使用的小方法,用来产生较复杂的HTML。预设的Helper文件名称对应控制器,但不强制要求,在任意一个Helper文件中定义的方法,都可以在任何视图中使用。
......

复制代码 代码如下:

配置文件目录(config/)

虽然Rails遵循“约定优于配置”的原则,但仍有一些需要设定的地方。在配置文件目录下,会存放应用程序设置文件application.rb、数据库设置文件database.yml、路由设置文件routes.rb、多重环境设置config/environments目录、其它初始设置文件config/initializers。

sudo gem install rails

Rails启动应用程序设置

启动Rails程序(例如rails console或rails server),会执行以下三个文档
boot.rb 载入Bundler环境,这个文件由Rails自动产生,不需要修改;

require 'rubygems'

# Set up gems listed in the Gemfile.
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)

require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])

application.rb 载入Rails gems和依赖的其它gems,接着设定Rails程序;

require File.expand_path('../boot', __FILE__)
require 'rails/all'

if defined?(Bundler)
 # If you precompile assets before deploying to production, use this line
 Bundler.require(*Rails.groups(:assets => %w(development test)))
 # If you want your assets lazily compiled in production, use this line
 # Bundler.require(:default, :assets, Rails.env)
end

module Myapps
 class Application < Rails::Application
  # Settings in config/environments/* take precedence over those specified here.
  # Application configuration should go into files in config/initializers
  # ... ...

  # Configure the default encoding used in templates for Ruby 1.9.
  config.encoding = "utf-8"

  # Configure sensitive parameters which will be filtered from the log file.
  config.filter_parameters  = [:password]

  # ... ...

  # Enable the asset pipeline
  config.assets.enabled = true

  # Version of your assets, change this if you want to expire all your assets
  config.assets.version = '1.0'
 end
end
environment.rb 执行所有启动程序(initializers),这个文件同样由Rails产生,不需要修改。
# Load the rails application
require File.expand_path('../application', __FILE__)

# Initialize the rails application
Myapps::Application.initialize!

安装RVM可以用句

初始设置文件(initializers)

由environment.rb调用,系统默认的初始设置文件有backtrace_silencers.rb、inflections.rb、mime_types.rb、secret_token.rb、session_store.rb和wrap_parameters.rb等6个,分别对应的用途是:选择性移动异常追踪、单复数转换、mime_types、加密cookies信息的token、默认session储存以及参数封装等。

复制代码 代码如下:

数据库存储目录(db/)

  • migrate文件夹
    数据库迁移文件
  • schema.rb
  • seeds.rb 初始化数据库

curl -L | bash -s stable

共享类或模块文件(lib/)

一些共享的类或模块可以存放在该目录。另外,Rake的任务,可存放在lib/tasks目录下。

**查看rails版本

日志目录(log/)

  • development.log
    开发环境下日志打印

**

公共文件目录(public/)

对于web服务器来说,可以直接访问的文件目录。可以用于存放通用的images、stylesheets和javascripts (Rails 2.x)。

复制代码 代码如下:

测试文件目录(test/)

用于存放单元测试、功能测试及整合测试文件。

rails -v
Rails 4.0.3

临时文件目录(tmp/)

存放一些临时文件

似乎这就是当前的最新版本

第三方插件目录(vendor/)

在使用bundler安装gems插件时,也可以选择安装在该目录下。
例如bundle install --path vendor/bundle

Ruby版本

复制代码 代码如下:

We recommend Ruby 2.1.0 for use with Rails. We stopped supporting Ruby 1.8.x after Rails 3.2. Ruby 1.9.2 will be supported until Rails 5.

官方推荐用2.1.0. 也就是最新版本

安装SQLite

似乎这就是诸如Django、Rails这类对于轻量级网站的数据库要求。

如果是mac os

复制代码 代码如下:

brew install sqlite3

其他可以看情况安装,如openSUSE

复制代码 代码如下:

sudo zypper install sqlite3

Rails 4 Hello,World

可以直接用rails生成

复制代码 代码如下:

$rails new hello

于是就有了

复制代码 代码如下:

  create
  create  README.rdoc
  create  Rakefile
  create  config.ru
  create  .gitignore
  create  Gemfile
  create  app
  create  app/assets/javascripts/application.js
  create  app/assets/stylesheets/application.css
  create  app/controllers/application_controller.rb
  create  app/helpers/application_helper.rb
  create  app/views/layouts/application.html.erb
  create  app/assets/images/.keep
  create  app/mailers/.keep
  create  app/models/.keep
  create  app/controllers/concerns/.keep
  create  app/models/concerns/.keep
  create  bin
  create  bin/bundle
  create  bin/rails
  create  bin/rake
  create  config
  create  config/routes.rb
  create  config/application.rb
  create  config/environment.rb
  create  config/environments
  create  config/environments/development.rb
  create  config/environments/production.rb
  create  config/environments/test.rb
  create  config/initializers
  create  config/initializers/backtrace_silencers.rb
  create  config/initializers/filter_parameter_logging.rb
  create  config/initializers/inflections.rb
  create  config/initializers/mime_types.rb
  create  config/initializers/secret_token.rb
  create  config/initializers/session_store.rb
  create  config/initializers/wrap_parameters.rb
  create  config/locales
  create  config/locales/en.yml
  create  config/boot.rb
  create  config/database.yml
  create  db
  create  db/seeds.rb
  create  lib
  create  lib/tasks
  create  lib/tasks/.keep
  create  lib/assets
  create  lib/assets/.keep
  create  log
  create  log/.keep
  create  public
  create  public/404.html
  create  public/422.html
  create  public/500.html
  create  public/favicon.ico
  create  public/robots.txt
  create  test/fixtures
  create  test/fixtures/.keep
  create  test/controllers
  create  test/controllers/.keep
  create  test/mailers
  create  test/mailers/.keep
  create  test/models
  create  test/models/.keep
  create  test/helpers
  create  test/helpers/.keep
  create  test/integration
  create  test/integration/.keep
  create  test/test_helper.rb
  create  tmp/cache
  create  tmp/cache/assets
  create  vendor/assets/javascripts
  create  vendor/assets/javascripts/.keep
  create  vendor/assets/stylesheets
  create  vendor/assets/stylesheets/.keep
run  bundle install

接着会安装包依赖

复制代码 代码如下:

  Fetching gem metadata from ..........
  Fetching additional metadata from ..
  Resolving dependencies...
  Using rake (10.3.1)
  Using i18n (0.6.9)
  Using minitest (4.7.5)
  Using multi_json (1.9.2)
  Using thread_safe (0.3.3)
  Using tzinfo (0.3.39)
  Using activesupport (4.0.3)
  Using builder (3.1.4)
  Using erubis (2.7.0)
  Using rack (1.5.2)
  Using rack-test (0.6.2)
  Using actionpack (4.0.3)
  Using mime-types (1.25.1)
  Using polyglot (0.3.4)
  Using treetop (1.4.15)
  Using mail (2.5.4)
  Using actionmailer (4.0.3)
  Using activemodel (4.0.3)
  Using activerecord-deprecated_finders (1.0.3)
  Using arel (4.0.2)
  Using activerecord (4.0.3)
  Using bundler (1.5.3)
  Using coffee-script-source (1.7.0)
  Using execjs (2.0.2)
  Using coffee-script (2.2.0)
  Using thor (0.19.1)
  Using railties (4.0.3)
  Using coffee-rails (4.0.1)
  Using hike (1.2.3)
  Using jbuilder (1.5.3)
  Using jquery-rails (3.1.0)
  Using json (1.8.1)
  Using tilt (1.4.1)
  Using sprockets (2.11.0)
  Using sprockets-rails (2.0.1)
  Using rails (4.0.3)
  Using rdoc (4.1.1)
  Using sass (3.2.19)
  Using sass-rails (4.0.3)
  Using sdoc (0.4.0)
  Using sqlite3 (1.3.9)
  Using turbolinks (2.2.2)
  Using uglifier (2.5.0)
  Your bundle is complete!
  Use `bundle show [gemname]` to see where a bundled gem is installed.

运行Rails

复制代码 代码如下:

$rails server

这样的话打开 就可以看到,Rails的欢迎界面Welcome aboard,有点类似于Django-CMS的小马哥~~

图片 1

创建controller

如官方指南所说

执行命令:

复制代码 代码如下:

$rails generate controller welcome index

就会创建下面这些文件:

复制代码 代码如下:

  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    test_unit
  create      test/helpers/welcome_helper_test.rb
  invoke  assets
  invoke    coffee
  create      app/assets/javascripts/welcome.js.coffee
  invoke    scss
  create      app/assets/stylesheets/welcome.css.scss

在config/routes.rb添加默认页面

复制代码 代码如下:

root 'welcome#index'

再运行

复制代码 代码如下:

rails server

就会出现

复制代码 代码如下:

Welcome#index

Find me in app/views/welcome/index.html.erb

一切来得很快,很突然。

您可能感兴趣的文章:

  • 快速安装Ruby on Rails的简明指南
  • win7安装ruby on rails开发环境
  • 在 Ubuntu 12.04 Server 上安装部署 Ruby on Rails 应用
  • Windows下Ruby on Rails开发环境安装配置图文教程
  • CentOS7下搭建ruby on rails开发环境
  • Ruby on Rails下的图像处理入门教程
  • 几个加速Ruby on Rails的编程技巧
  • Ruby on rails安装后去掉DL is deprecated,please use Fiddle警告信息的方法【测试可用】

本文由pc28.am发布于计算机编程,转载请注明出处:rails框架配置,常用命令总计

上一篇:嵌入式框架Zorb 下一篇:没有了
猜你喜欢
热门排行
精彩图文