【转】Ruby on Rails,创建最简单的视图/控制器单元Hello World

http://blog.csdn.net/abbuggy/article/details/7409445

  • Usage: rails generate GENERATOR [args] [options]  
  •   
  • General options:  
  •   -h, [--help]     # Print generator's options and usage  
  •   -p, [--pretend]  # Run but do not make any changes  
  •   -f, [--force]    # Overwrite files that already exist  
  •   -s, [--skip]     # Skip files that already exist  
  •   -q, [--quiet]    # Suppress status output  
  •   
  • Please choose a generator below.  
  •   
  • Rails:  
  •   assets  
  •   controller  
  •   generator  
  •   helper  
  •   integration_test  
  •   mailer  
  •   migration  
  •   model  
  •   observer  
  •   performance_test  
  •   resource  
  •   scaffold  
  •   scaffold_controller  
  •   session_migration  
  •   task  
  •   
  • Coffee:  
  •   coffee:assets  
  •   
  • Jquery:  
  •   jquery:install  
  •   
  • Js:  
  •   js:assets  
  • 我们需要创建Controller和View,使用rails generate controller命令。不带任何参数的命令会对创建controller的使用方式进行提示,应该静下心来读一读。其中最有用的部分是说,以 CamelCase(大写字母开头分割单词)或者under_scored(下划线分割单词)的方式命名Controller,将View名称列表以参数 的方式给出。后面还举了一个很典型的例子。

 

 

  •  

  1. E:\greensoft\RailsInstaller\Sites\simple_site>rails generate controller  
  2. Usage:  
  3.   rails generate controller NAME [action action] [options]  
  4.   
  5. Options:  
  6.       [--skip-namespace]        # Skip namespace (affects only isolated applications)  
  7.       [--old-style-hash]        # Force using old style hash (:foo => 'bar') on Ruby >= 1.9  
  8.   -e, [--template-engine=NAME]  # Template engine to be invoked  
  9.                                 # Default: erb  
  10.   -t, [--test-framework=NAME]   # Test framework to be invoked  
  11.                                 # Default: test_unit  
  12.       [--helper]                # Indicates when to generate helper  
  13.                                 # Default: true  
  14.       [--assets]                # Indicates when to generate assets  
  15.                                 # Default: true  
  16.   
  17. Runtime options:  
  18.   -f, [--force]    # Overwrite files that already exist  
  19.   -p, [--pretend]  # Run but do not make any changes  
  20.   -q, [--quiet]    # Supress status output  
  21.   -s, [--skip]     # Skip files that already exist  
  22.   
  23. Description:  
  24.     Stubs out a new controller and its views. Pass the controller name, either  
  25.     CamelCased or under_scored, and a list of views as arguments.  
  26.   
  27.     To create a controller within a module, specify the controller name as a  
  28.     path like 'parent_module/controller_name'.  
  29.   
  30.     This generates a controller class in app/controllers and invokes helper,  
  31.     template engine and test framework generators.  
  32.   
  33. Example:  
  34.     `rails generate controller CreditCard open debit credit close`  
  35.   
  36.     Credit card controller with URLs like /credit_card/debit.  
  37.         Controller:      app/controllers/credit_card_controller.rb  
  38.         Functional Test: test/functional/credit_card_controller_test.rb  
  39.         Views:           app/views/credit_card/debit.html.erb [...]  
  40.         Helper:          app/helpers/credit_card_helper.rb  

我 们要创建一个名为demo的Controller,指向名为index的View。在这里可以使用g来代替generate,就像s代替service一 样。回显信息告诉我们,rails为我们在app/controller目录中创建了一个名为demo_controller的Controller。 app/views/目录中创建了一个名为demo的目录,目录中的index.html.erb对应View。

  1. E:\greensoft\RailsInstaller\Sites\simple_site>rails g controller demo index  
  2.       create  app/controllers/demo_controller.rb  
  3.        route  get "demo/index"  
  4.       invoke  erb  
  5.       create    app/views/demo  
  6.       create    app/views/demo/index.html.erb  
  7.       invoke  test_unit  
  8.       create    test/functional/demo_controller_test.rb  
  9.       invoke  helper  
  10.       create    app/helpers/demo_helper.rb  
  11.       invoke    test_unit  
  12.       create      test/unit/helpers/demo_helper_test.rb  
  13.       invoke  assets  
  14.       invoke    coffee  
  15.       create      app/assets/javascripts/demo.js.coffee  
  16.       invoke    scss  
  17.       create      app/assets/stylesheets/demo.css.scss  

controller目录中名为demo的Controller里有一个名为index的方法,在在这里应该叫做action。这个叫index的action,对应views目录中名为index.html.erb的View。

  1. class DemoController < ApplicationController  
  2.   def index  
  3.   end  
  4. end  

修改一下页面内容

  1. <h1>Demo#index</h1>  
  2. <p>Hello World!</p>  
  1. <p>Find me in app/views/demo/index.html.erb</p>  

代码编写完毕,启动web服务器。在浏览器地址栏中输入:localhost:3000/demo/index。里程碑!

posted @ 2014-11-13 17:13  小哥er  阅读(688)  评论(0编辑  收藏  举报