Ticket #7858: README_update.diff
| File README_update.diff, 12.6 kB (added by dougal, 1 year ago) |
|---|
-
railties/README
old new 21 21 are bundled in a single package due to their heavy interdependence. This is 22 22 unlike the relationship between the Active Record and Action Pack that is much 23 23 more separate. Each of these packages can be used independently outside of 24 Rails. You can read more about Action Pack in24 Rails. You can read more about Action Pack in 25 25 link:files/vendor/rails/actionpack/README.html. 26 26 27 28 27 == Getting started 29 28 30 29 1. At the command prompt, start a new rails application using the rails command 31 and your application name. Ex: rails myapp 32 (If you've downloaded rails in a complete tgz or zip, this step is already done) 33 2. Change directory into myapp and start the web server: <tt>script/server</tt> (run with --help for options) 34 3. Go to http://localhost:3000/ and get "Welcome aboard: Youâre riding the Rails!" 35 4. Follow the guidelines to start developing your application 30 and your application name. Ex: <tt>rails myapp</tt> 31 2. Change directory into myapp and start the web server: <tt>script/server</tt> 32 (run with --help for options) 33 3. Go to http://localhost:3000/ and get the page entitled "Welcome aboard: 34 You're riding the Rails!" 35 4. Follow the guidelines to start developing your application. 36 36 37 38 37 == Web Servers 39 38 40 By default, Rails will try to use Mongrel and lighttpd if they are installed, otherwise 41 Rails will use the WEBrick, the webserver that ships with Ruby. When you run script/server, 42 Rails will check if Mongrel exists, then lighttpd and finally fall back to WEBrick. This ensures 43 that you can always get up and running quickly. 39 By default, Rails will try to use Mongrel and lighttpd if they are installed. 40 Otherwise, Rails will use the WEBrick, the webserver that ships with Ruby. When 41 you run script/server, Rails will check if Mongrel exists, then lighttpd and 42 finally fall back to WEBrick. This ensures that you can always get up and 43 running quickly. 44 44 45 Mongrel is a Ruby-based webserver with a C-component (which requires compilation) that is 46 suitable for development and deployment of Rails applications. If you have Ruby Gems installed, 47 getting up and running with mongrel is as easy as: <tt>gem install mongrel</tt>. 48 More info at: http://mongrel.rubyforge.org 45 Mongrel is a Ruby-based webserver with a C-component (which requires 46 compilation) that is suitable for development and deployment of Rails 47 applications. If you have Ruby Gems installed, getting up and running with 48 mongrel is as easy as: <tt>gem install mongrel</tt>. More info at: 49 http://mongrel.rubyforge.org 49 50 50 If Mongrel is not installed, Rails will look for lighttpd. It's considerably faster than51 Mongrel and WEBrick and also suited for production use, but requires additional 52 installation and currently only works well on OS X/Unix (Windows users are encouraged 53 to start with Mongrel). We recommend version 1.4.11 and higher. You can download it from 54 http://www.lighttpd.net.51 If Mongrel is not installed, Rails will look for lighttpd. It's considerably 52 faster than Mongrel and WEBrick and also suited for production use, but 53 requires additional installation and currently only works well on OS X/Unix 54 (Windows users are encouraged to start with Mongrel). We recommend using 55 version 1.4.11 or higher. You can download it from http://www.lighttpd.net. 55 56 56 And finally, if neither Mongrel or lighttpd are installed, Rails will use the built-in Ruby57 web server, WEBrick. WEBrick is a small Ruby web server suitable for development, but not 58 for production.57 And finally, if neither Mongrel nor lighttpd are installed, Rails will use the 58 built-in Ruby web server, WEBrick. WEBrick is a small Ruby web server suitable 59 for development, but not for production environments. 59 60 60 But of course its also possible to run Rails on any platform that supports FCGI.61 Apache, LiteSpeed, IIS are just a few. For more information on FCGI,62 please visit: http://wiki.rubyonrails.com/rails/pages/FastCGI 61 Of course, it's also possible to run Rails on any platform that supports FCGI. 62 Apache, LiteSpeed, and IIS are just a few of the options. For more information 63 on FCGI, please visit http://wiki.rubyonrails.com/rails/pages/FastCGI . 63 64 64 65 65 == Debugging Rails 66 66 67 Have "tail -f" commands running on the server.log and development.log. Rails will68 automatically display debugging and runtime information to these files. Debugging 69 info will also be shown in the browser on requests from 127.0.0.1.67 Have "tail -f" commands running on the server.log and development.log. Rails 68 will automatically display debugging and runtime information to these files. 69 Debugging info will also be shown in the browser on requests from 127.0.0.1. 70 70 71 72 71 == Breakpoints 73 72 74 73 Breakpoint support is available through the script/breakpointer client. This 75 74 means that you can break out of execution at any point in the code, investigate 76 and change the model, AND then resume execution! Example:75 and change the model, AND then resume execution! For example: 77 76 78 class WeblogController < ActionController::Base79 def index80 @posts = Post.find(:all)81 breakpoint "Breaking out from the list"82 end83 end77 class WeblogController < ActionController::Base 78 def index 79 @posts = Post.find(:all) 80 breakpoint "Breaking out from the list" 81 end 82 end 84 83 85 84 So the controller will accept the action, run the first line, then present you 86 with a IRB prompt in the breakpointer window. Here you can do things like:85 with an IRB prompt in the breakpointer window. Here you can do things like: 87 86 88 Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint' 87 Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 88 in 'breakpoint' 89 89 90 >> @posts.inspect91 => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>,92 #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]"93 >> @posts.first.title = "hello from a breakpoint"94 => "hello from a breakpoint"90 >> @posts.inspect 91 => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>, 92 #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" 93 >> @posts.first.title = "hello from a breakpoint" 94 => "hello from a breakpoint" 95 95 96 ...and even better is that you can examine how your runtime objects actually work: 96 ...and even better is that you can examine how your runtime objects actually 97 work: 97 98 98 >> f = @posts.first99 => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>100 >> f.101 Display all 152 possibilities? (y or n)99 >> f = @posts.first 100 => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> 101 >> f. 102 Display all 152 possibilities? (y or n) 102 103 103 Finally, when you're ready to resume execution, you press CTRL-D 104 Finally, when you're ready to resume execution, you press CTRL-D. 104 105 105 106 106 107 == Console 107 108 108 You can interact with the domain model by starting the console through <tt>script/console</tt>. 109 Here you'll have all parts of the application configured, just like it is when the 110 application is running. You can inspect domain models, change values, and save to the 111 database. Starting the script without arguments will launch it in the development environment. 112 Passing an argument will specify a different environment, like <tt>script/console production</tt>. 109 You can interact with the domain model by starting the console through 110 <tt>script/console</tt>. Here you'll have all parts of the application 111 configured, just like it is when the application is running. You can inspect 112 domain models, change values, and save to the database. Starting the script 113 without arguments will launch it in the development environment. Passing an 114 argument will specify a different environment: for example, <tt>script/console 115 production</tt>. 113 116 114 To reload your controllers and models after launching the console run <tt>reload!</tt> 117 To reload your controllers and models after launching the console run 118 <tt>reload!</tt> 115 119 116 To reload your controllers and models after launching the console run <tt>reload!</tt>117 120 118 119 120 121 == Description of contents 121 122 122 123 app 123 124 Holds all the code that's specific to this particular application. 124 125 125 126 app/controllers 126 Holds controllers that should be named like weblogs_controller.rb for 127 automated URL mapping. All controllers should descend from ApplicationController128 which itself descends from ActionController::Base.127 Holds controllers that should be named like weblogs_controller.rb for 128 automated URL mapping. All controllers should descend from 129 ApplicationController, which itself descends from ActionController::Base. 129 130 130 131 app/models 131 Holds models that should be named like post.rb. 132 Most models will descend fromActiveRecord::Base.132 Holds models that should be named like post.rb. Most models will descend from 133 ActiveRecord::Base. 133 134 134 135 app/views 135 136 Holds the template files for the view that should be named like 136 weblogs/index. erb for the WeblogsController#index action. All views use eRuby137 syntax.137 weblogs/index.rhtml for the WeblogsController#index action. All views use 138 eRuby syntax. 138 139 139 140 app/views/layouts 140 Holds the template files for layouts to be used with views. This models the common141 header/footer method of wrapping views. In your views, define a layout using the142 <tt>layout :default</tt> and create a file named default.erb. Inside default.erb,143 call <% yield %> to render the view using this layout.141 Holds the template files for layouts to be used with views. This models the 142 common header/footer method of wrapping views. In your views, define a layout 143 using the <tt>layout :default</tt> and create a file named default.erb. 144 Inside default.erb, call <% yield %> to render the view using this layout. 144 145 145 146 app/helpers 146 Holds view helpers that should be named like weblogs_helper.rb. These are generated147 for you automatically when using script/generate for controllers. Helpers can be used to148 wrap functionality for your views into methods.147 Holds view helpers that should be named like weblogs_helper.rb. These are 148 generated for you automatically when using script/generate for controllers. 149 Helpers can be used to wrap functionality for your views into methods. 149 150 150 151 config 151 Configuration files for the Rails environment, the routing map, the database, and other dependencies. 152 Configuration files for the Rails environment, the routing map, the database, 153 and other dependencies. 152 154 153 155 components 154 Self-contained mini-applications that can bundle together controllers, models, and views. 156 Self-contained mini-applications that can bundle together controllers, 157 models, and views. 155 158 156 159 db 157 Contains the database schema in schema.rb. db/migrate contains all158 thesequence of Migrations for your schema.160 Contains the database schema in schema.rb. db/migrate contains all the 161 sequence of Migrations for your schema. 159 162 160 163 doc 161 This directory is where your application documentation will be stored when generated162 using <tt>rake doc:app</tt>164 This directory is where your application documentation will be stored when 165 generated using <tt>rake doc:app</tt> 163 166 164 167 lib 165 Application specific libraries. Basically, any kind of custom code that doesn't 166 belong under controllers, models, or helpers. This directory is in the load path. 168 Application specific libraries: basically, any kind of custom code that 169 doesn't belong under controllers, models, or helpers. This directory is in 170 the load path. 167 171 168 172 public 169 The directory available for the web server. Contains subdirectories for images, stylesheets, 170 and javascripts. Also contains the dispatchers and the default HTML files. This should be 171 set as the DOCUMENT_ROOT of your web server. 173 The directory available for the web server. Contains subdirectories for 174 images, stylesheets, and javascripts. Also contains the dispatchers and the 175 default HTML files. This should be set as the DOCUMENT_ROOT of your web 176 server. 172 177 173 178 script 174 179 Helper scripts for automation and generation. 175 180 176 181 test 177 Unit and functional tests along with fixtures. When using the script/generate scripts, template 178 test files will be generated for you and placed in this directory. 182 Unit and functional tests along with fixtures. When using the 183 script/generate scripts, template test files will be generated for you and 184 placed in this directory. 179 185 180 186 vendor 181 External libraries that the application depends on. Also includes the plugins subdirectory.182 This directory is in the load path.187 External libraries that the application depends on. Also includes the 188 plugins subdirectory. This directory is in the load path.