Show More
Commit Description:
fix utf8 for java
Commit Description:
fix utf8 for java
References:
File last commit:
Show/Diff file:
Action:
README.rdoc
| 261 lines
| 9.0 KiB
| text/plain
| TextLexer
|
|
r318 | == Welcome to Rails | ||
Rails is a web-application framework that includes everything needed to create | ||||
database-backed web applications according to the Model-View-Control pattern. | ||||
This pattern splits the view (also called the presentation) into "dumb" | ||||
templates that are primarily responsible for inserting pre-built data in between | ||||
HTML tags. The model contains the "smart" domain objects (such as Account, | ||||
Product, Person, Post) that holds all the business logic and knows how to | ||||
persist themselves to a database. The controller handles the incoming requests | ||||
(such as Save New Account, Update Product, Show Post) by manipulating the model | ||||
and directing data to the view. | ||||
In Rails, the model is handled by what's called an object-relational mapping | ||||
layer entitled Active Record. This layer allows you to present the data from | ||||
database rows as objects and embellish these data objects with business logic | ||||
methods. You can read more about Active Record in | ||||
link:files/vendor/rails/activerecord/README.html. | ||||
The controller and view are handled by the Action Pack, which handles both | ||||
layers by its two parts: Action View and Action Controller. These two layers | ||||
are bundled in a single package due to their heavy interdependence. This is | ||||
unlike the relationship between the Active Record and Action Pack that is much | ||||
more separate. Each of these packages can be used independently outside of | ||||
Rails. You can read more about Action Pack in | ||||
link:files/vendor/rails/actionpack/README.html. | ||||
== Getting Started | ||||
1. At the command prompt, create a new Rails application: | ||||
<tt>rails new myapp</tt> (where <tt>myapp</tt> is the application name) | ||||
2. Change directory to <tt>myapp</tt> and start the web server: | ||||
<tt>cd myapp; rails server</tt> (run with --help for options) | ||||
3. Go to http://localhost:3000/ and you'll see: | ||||
"Welcome aboard: You're riding Ruby on Rails!" | ||||
4. Follow the guidelines to start developing your application. You can find | ||||
the following resources handy: | ||||
* The Getting Started Guide: http://guides.rubyonrails.org/getting_started.html | ||||
* Ruby on Rails Tutorial Book: http://www.railstutorial.org/ | ||||
== Debugging Rails | ||||
Sometimes your application goes wrong. Fortunately there are a lot of tools that | ||||
will help you debug it and get it back on the rails. | ||||
First area to check is the application log files. Have "tail -f" commands | ||||
running on the server.log and development.log. Rails will automatically display | ||||
debugging and runtime information to these files. Debugging info will also be | ||||
shown in the browser on requests from 127.0.0.1. | ||||
You can also log your own messages directly into the log file from your code | ||||
using the Ruby logger class from inside your controllers. Example: | ||||
class WeblogController < ActionController::Base | ||||
def destroy | ||||
@weblog = Weblog.find(params[:id]) | ||||
@weblog.destroy | ||||
logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") | ||||
end | ||||
end | ||||
The result will be a message in your log file along the lines of: | ||||
Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1! | ||||
More information on how to use the logger is at http://www.ruby-doc.org/core/ | ||||
Also, Ruby documentation can be found at http://www.ruby-lang.org/. There are | ||||
several books available online as well: | ||||
* Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe) | ||||
* Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) | ||||
These two books will bring you up to speed on the Ruby language and also on | ||||
programming in general. | ||||
== Debugger | ||||
Debugger support is available through the debugger command when you start your | ||||
Mongrel or WEBrick server with --debugger. This means that you can break out of | ||||
execution at any point in the code, investigate and change the model, and then, | ||||
resume execution! You need to install ruby-debug to run the server in debugging | ||||
mode. With gems, use <tt>sudo gem install ruby-debug</tt>. Example: | ||||
class WeblogController < ActionController::Base | ||||
def index | ||||
@posts = Post.all | ||||
debugger | ||||
end | ||||
end | ||||
So the controller will accept the action, run the first line, then present you | ||||
with a IRB prompt in the server window. Here you can do things like: | ||||
>> @posts.inspect | ||||
=> "[#<Post:0x14a6be8 | ||||
@attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>, | ||||
#<Post:0x14a6620 | ||||
@attributes={"title"=>"Rails", "body"=>"Only ten..", "id"=>"2"}>]" | ||||
>> @posts.first.title = "hello from a debugger" | ||||
=> "hello from a debugger" | ||||
...and even better, you can examine how your runtime objects actually work: | ||||
>> f = @posts.first | ||||
=> #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> | ||||
>> f. | ||||
Display all 152 possibilities? (y or n) | ||||
Finally, when you're ready to resume execution, you can enter "cont". | ||||
== Console | ||||
The console is a Ruby shell, which allows you to interact with your | ||||
application's domain model. Here you'll have all parts of the application | ||||
configured, just like it is when the application is running. You can inspect | ||||
domain models, change values, and save to the database. Starting the script | ||||
without arguments will launch it in the development environment. | ||||
To start the console, run <tt>rails console</tt> from the application | ||||
directory. | ||||
Options: | ||||
* Passing the <tt>-s, --sandbox</tt> argument will rollback any modifications | ||||
made to the database. | ||||
* Passing an environment name as an argument will load the corresponding | ||||
environment. Example: <tt>rails console production</tt>. | ||||
To reload your controllers and models after launching the console run | ||||
<tt>reload!</tt> | ||||
More information about irb can be found at: | ||||
link:http://www.rubycentral.org/pickaxe/irb.html | ||||
== dbconsole | ||||
You can go to the command line of your database directly through <tt>rails | ||||
dbconsole</tt>. You would be connected to the database with the credentials | ||||
defined in database.yml. Starting the script without arguments will connect you | ||||
to the development database. Passing an argument will connect you to a different | ||||
database, like <tt>rails dbconsole production</tt>. Currently works for MySQL, | ||||
PostgreSQL and SQLite 3. | ||||
== Description of Contents | ||||
The default directory structure of a generated Ruby on Rails application: | ||||
|-- app | ||||
| |-- assets | ||||
| |-- images | ||||
| |-- javascripts | ||||
| `-- stylesheets | ||||
| |-- controllers | ||||
| |-- helpers | ||||
| |-- mailers | ||||
| |-- models | ||||
| `-- views | ||||
| `-- layouts | ||||
|-- config | ||||
| |-- environments | ||||
| |-- initializers | ||||
| `-- locales | ||||
|-- db | ||||
|-- doc | ||||
|-- lib | ||||
| `-- tasks | ||||
|-- log | ||||
|-- public | ||||
|-- script | ||||
|-- test | ||||
| |-- fixtures | ||||
| |-- functional | ||||
| |-- integration | ||||
| |-- performance | ||||
| `-- unit | ||||
|-- tmp | ||||
| |-- cache | ||||
| |-- pids | ||||
| |-- sessions | ||||
| `-- sockets | ||||
`-- vendor | ||||
|-- assets | ||||
`-- stylesheets | ||||
`-- plugins | ||||
app | ||||
Holds all the code that's specific to this particular application. | ||||
app/assets | ||||
Contains subdirectories for images, stylesheets, and JavaScript files. | ||||
app/controllers | ||||
Holds controllers that should be named like weblogs_controller.rb for | ||||
automated URL mapping. All controllers should descend from | ||||
ApplicationController which itself descends from ActionController::Base. | ||||
app/models | ||||
Holds models that should be named like post.rb. Models descend from | ||||
ActiveRecord::Base by default. | ||||
app/views | ||||
Holds the template files for the view that should be named like | ||||
weblogs/index.html.erb for the WeblogsController#index action. All views use | ||||
eRuby syntax by default. | ||||
app/views/layouts | ||||
Holds the template files for layouts to be used with views. This models the | ||||
common header/footer method of wrapping views. In your views, define a layout | ||||
using the <tt>layout :default</tt> and create a file named default.html.erb. | ||||
Inside default.html.erb, call <% yield %> to render the view using this | ||||
layout. | ||||
app/helpers | ||||
Holds view helpers that should be named like weblogs_helper.rb. These are | ||||
generated for you automatically when using generators for controllers. | ||||
Helpers can be used to wrap functionality for your views into methods. | ||||
config | ||||
Configuration files for the Rails environment, the routing map, the database, | ||||
and other dependencies. | ||||
db | ||||
Contains the database schema in schema.rb. db/migrate contains all the | ||||
sequence of Migrations for your schema. | ||||
doc | ||||
This directory is where your application documentation will be stored when | ||||
generated using <tt>rake doc:app</tt> | ||||
lib | ||||
Application specific libraries. Basically, any kind of custom code that | ||||
doesn't belong under controllers, models, or helpers. This directory is in | ||||
the load path. | ||||
public | ||||
The directory available for the web server. Also contains the dispatchers and the | ||||
default HTML files. This should be set as the DOCUMENT_ROOT of your web | ||||
server. | ||||
script | ||||
Helper scripts for automation and generation. | ||||
test | ||||
Unit and functional tests along with fixtures. When using the rails generate | ||||
command, template test files will be generated for you and placed in this | ||||
directory. | ||||
vendor | ||||
External libraries that the application depends on. Also includes the plugins | ||||
subdirectory. If the app has frozen rails, those gems also go here, under | ||||
vendor/rails/. This directory is in the load path. | ||||