jimi
14 years ago
commit
83b4e3e1e1
37 changed files with 943 additions and 0 deletions
-
4.gitignore
-
31Gemfile
-
256README
-
7Rakefile
-
3app/controllers/application_controller.rb
-
2app/helpers/application_helper.rb
-
14app/views/layouts/application.html.erb
-
4config.ru
-
42config/application.rb
-
6config/boot.rb
-
22config/database.yml
-
5config/environment.rb
-
26config/environments/development.rb
-
49config/environments/production.rb
-
35config/environments/test.rb
-
7config/initializers/backtrace_silencers.rb
-
10config/initializers/inflections.rb
-
5config/initializers/mime_types.rb
-
7config/initializers/secret_token.rb
-
8config/initializers/session_store.rb
-
5config/locales/en.yml
-
58config/routes.rb
-
7db/seeds.rb
-
2doc/README_FOR_APP
-
0lib/tasks/.gitkeep
-
26public/404.html
-
26public/422.html
-
26public/500.html
-
0public/favicon.ico
-
BINpublic/images/rails.png
-
239public/index.html
-
0public/javascripts/.gitkeep
-
0public/javascripts/application.js
-
5public/robots.txt
-
0public/stylesheets/.gitkeep
-
6script/rails
-
0vendor/plugins/.gitkeep
@ -0,0 +1,4 @@ |
|||
.bundle |
|||
db/*.sqlite3 |
|||
log/*.log |
|||
tmp/ |
@ -0,0 +1,31 @@ |
|||
source 'http://rubygems.org' |
|||
|
|||
gem 'rails', '3.0.4' |
|||
|
|||
# Bundle edge Rails instead: |
|||
# gem 'rails', :git => 'git://github.com/rails/rails.git' |
|||
|
|||
gem 'sqlite3' |
|||
|
|||
# Use unicorn as the web server |
|||
# gem 'unicorn' |
|||
|
|||
# Deploy with Capistrano |
|||
# gem 'capistrano' |
|||
|
|||
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+) |
|||
# gem 'ruby-debug' |
|||
# gem 'ruby-debug19' |
|||
|
|||
# Bundle the extra gems: |
|||
# gem 'bj' |
|||
# gem 'nokogiri' |
|||
# gem 'sqlite3-ruby', :require => 'sqlite3' |
|||
# gem 'aws-s3', :require => 'aws/s3' |
|||
|
|||
# Bundle gems for the local environment. Make sure to |
|||
# put test-only gems in this group so their generators |
|||
# and rake tasks are available in development mode: |
|||
# group :development, :test do |
|||
# gem 'webrat' |
|||
# end |
@ -0,0 +1,256 @@ |
|||
== 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.find(: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.com/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 |
|||
| |-- controllers |
|||
| |-- helpers |
|||
| |-- mailers |
|||
| |-- models |
|||
| `-- views |
|||
| `-- layouts |
|||
|-- config |
|||
| |-- environments |
|||
| |-- initializers |
|||
| `-- locales |
|||
|-- db |
|||
|-- doc |
|||
|-- lib |
|||
| `-- tasks |
|||
|-- log |
|||
|-- public |
|||
| |-- images |
|||
| |-- javascripts |
|||
| `-- stylesheets |
|||
|-- script |
|||
|-- test |
|||
| |-- fixtures |
|||
| |-- functional |
|||
| |-- integration |
|||
| |-- performance |
|||
| `-- unit |
|||
|-- tmp |
|||
| |-- cache |
|||
| |-- pids |
|||
| |-- sessions |
|||
| `-- sockets |
|||
`-- vendor |
|||
`-- plugins |
|||
|
|||
app |
|||
Holds all the code that's specific to this particular application. |
|||
|
|||
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. Contains subdirectories for |
|||
images, stylesheets, and javascripts. 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. |
@ -0,0 +1,7 @@ |
|||
# Add your own tasks in files placed in lib/tasks ending in .rake, |
|||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. |
|||
|
|||
require File.expand_path('../config/application', __FILE__) |
|||
require 'rake' |
|||
|
|||
Aironeac::Application.load_tasks |
@ -0,0 +1,3 @@ |
|||
class ApplicationController < ActionController::Base |
|||
protect_from_forgery |
|||
end |
@ -0,0 +1,2 @@ |
|||
module ApplicationHelper |
|||
end |
@ -0,0 +1,14 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<title>Aironeac</title> |
|||
<%= stylesheet_link_tag :all %> |
|||
<%= javascript_include_tag :defaults %> |
|||
<%= csrf_meta_tag %> |
|||
</head> |
|||
<body> |
|||
|
|||
<%= yield %> |
|||
|
|||
</body> |
|||
</html> |
@ -0,0 +1,4 @@ |
|||
# This file is used by Rack-based servers to start the application. |
|||
|
|||
require ::File.expand_path('../config/environment', __FILE__) |
|||
run Aironeac::Application |
@ -0,0 +1,42 @@ |
|||
require File.expand_path('../boot', __FILE__) |
|||
|
|||
require 'rails/all' |
|||
|
|||
# If you have a Gemfile, require the gems listed there, including any gems |
|||
# you've limited to :test, :development, or :production. |
|||
Bundler.require(:default, Rails.env) if defined?(Bundler) |
|||
|
|||
module Aironeac |
|||
class Application < Rails::Application |
|||
# Settings in config/environments/* take precedence over those specified here. |
|||
# Application configuration should go into files in config/initializers |
|||
# -- all .rb files in that directory are automatically loaded. |
|||
|
|||
# Custom directories with classes and modules you want to be autoloadable. |
|||
# config.autoload_paths += %W(#{config.root}/extras) |
|||
|
|||
# Only load the plugins named here, in the order given (default is alphabetical). |
|||
# :all can be used as a placeholder for all plugins not explicitly named. |
|||
# config.plugins = [ :exception_notification, :ssl_requirement, :all ] |
|||
|
|||
# Activate observers that should always be running. |
|||
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer |
|||
|
|||
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. |
|||
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. |
|||
# config.time_zone = 'Central Time (US & Canada)' |
|||
|
|||
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. |
|||
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] |
|||
# config.i18n.default_locale = :de |
|||
|
|||
# JavaScript files you want as :defaults (application.js is always included). |
|||
config.action_view.javascript_expansions[:defaults] = %w() |
|||
|
|||
# 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] |
|||
end |
|||
end |
@ -0,0 +1,6 @@ |
|||
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']) |
@ -0,0 +1,22 @@ |
|||
# SQLite version 3.x |
|||
# gem install sqlite3 |
|||
development: |
|||
adapter: sqlite3 |
|||
database: db/development.sqlite3 |
|||
pool: 5 |
|||
timeout: 5000 |
|||
|
|||
# Warning: The database defined as "test" will be erased and |
|||
# re-generated from your development database when you run "rake". |
|||
# Do not set this db to the same as development or production. |
|||
test: |
|||
adapter: sqlite3 |
|||
database: db/test.sqlite3 |
|||
pool: 5 |
|||
timeout: 5000 |
|||
|
|||
production: |
|||
adapter: sqlite3 |
|||
database: db/production.sqlite3 |
|||
pool: 5 |
|||
timeout: 5000 |
@ -0,0 +1,5 @@ |
|||
# Load the rails application |
|||
require File.expand_path('../application', __FILE__) |
|||
|
|||
# Initialize the rails application |
|||
Aironeac::Application.initialize! |
@ -0,0 +1,26 @@ |
|||
Aironeac::Application.configure do |
|||
# Settings specified here will take precedence over those in config/application.rb |
|||
|
|||
# In the development environment your application's code is reloaded on |
|||
# every request. This slows down response time but is perfect for development |
|||
# since you don't have to restart the webserver when you make code changes. |
|||
config.cache_classes = false |
|||
|
|||
# Log error messages when you accidentally call methods on nil. |
|||
config.whiny_nils = true |
|||
|
|||
# Show full error reports and disable caching |
|||
config.consider_all_requests_local = true |
|||
config.action_view.debug_rjs = true |
|||
config.action_controller.perform_caching = false |
|||
|
|||
# Don't care if the mailer can't send |
|||
config.action_mailer.raise_delivery_errors = false |
|||
|
|||
# Print deprecation notices to the Rails logger |
|||
config.active_support.deprecation = :log |
|||
|
|||
# Only use best-standards-support built into browsers |
|||
config.action_dispatch.best_standards_support = :builtin |
|||
end |
|||
|
@ -0,0 +1,49 @@ |
|||
Aironeac::Application.configure do |
|||
# Settings specified here will take precedence over those in config/application.rb |
|||
|
|||
# The production environment is meant for finished, "live" apps. |
|||
# Code is not reloaded between requests |
|||
config.cache_classes = true |
|||
|
|||
# Full error reports are disabled and caching is turned on |
|||
config.consider_all_requests_local = false |
|||
config.action_controller.perform_caching = true |
|||
|
|||
# Specifies the header that your server uses for sending files |
|||
config.action_dispatch.x_sendfile_header = "X-Sendfile" |
|||
|
|||
# For nginx: |
|||
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' |
|||
|
|||
# If you have no front-end server that supports something like X-Sendfile, |
|||
# just comment this out and Rails will serve the files |
|||
|
|||
# See everything in the log (default is :info) |
|||
# config.log_level = :debug |
|||
|
|||
# Use a different logger for distributed setups |
|||
# config.logger = SyslogLogger.new |
|||
|
|||
# Use a different cache store in production |
|||
# config.cache_store = :mem_cache_store |
|||
|
|||
# Disable Rails's static asset server |
|||
# In production, Apache or nginx will already do this |
|||
config.serve_static_assets = false |
|||
|
|||
# Enable serving of images, stylesheets, and javascripts from an asset server |
|||
# config.action_controller.asset_host = "http://assets.example.com" |
|||
|
|||
# Disable delivery errors, bad email addresses will be ignored |
|||
# config.action_mailer.raise_delivery_errors = false |
|||
|
|||
# Enable threaded mode |
|||
# config.threadsafe! |
|||
|
|||
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to |
|||
# the I18n.default_locale when a translation can not be found) |
|||
config.i18n.fallbacks = true |
|||
|
|||
# Send deprecation notices to registered listeners |
|||
config.active_support.deprecation = :notify |
|||
end |
@ -0,0 +1,35 @@ |
|||
Aironeac::Application.configure do |
|||
# Settings specified here will take precedence over those in config/application.rb |
|||
|
|||
# The test environment is used exclusively to run your application's |
|||
# test suite. You never need to work with it otherwise. Remember that |
|||
# your test database is "scratch space" for the test suite and is wiped |
|||
# and recreated between test runs. Don't rely on the data there! |
|||
config.cache_classes = true |
|||
|
|||
# Log error messages when you accidentally call methods on nil. |
|||
config.whiny_nils = true |
|||
|
|||
# Show full error reports and disable caching |
|||
config.consider_all_requests_local = true |
|||
config.action_controller.perform_caching = false |
|||
|
|||
# Raise exceptions instead of rendering exception templates |
|||
config.action_dispatch.show_exceptions = false |
|||
|
|||
# Disable request forgery protection in test environment |
|||
config.action_controller.allow_forgery_protection = false |
|||
|
|||
# Tell Action Mailer not to deliver emails to the real world. |
|||
# The :test delivery method accumulates sent emails in the |
|||
# ActionMailer::Base.deliveries array. |
|||
config.action_mailer.delivery_method = :test |
|||
|
|||
# Use SQL instead of Active Record's schema dumper when creating the test database. |
|||
# This is necessary if your schema can't be completely dumped by the schema dumper, |
|||
# like if you have constraints or database-specific column types |
|||
# config.active_record.schema_format = :sql |
|||
|
|||
# Print deprecation notices to the stderr |
|||
config.active_support.deprecation = :stderr |
|||
end |
@ -0,0 +1,7 @@ |
|||
# Be sure to restart your server when you modify this file. |
|||
|
|||
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. |
|||
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } |
|||
|
|||
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. |
|||
# Rails.backtrace_cleaner.remove_silencers! |
@ -0,0 +1,10 @@ |
|||
# Be sure to restart your server when you modify this file. |
|||
|
|||
# Add new inflection rules using the following format |
|||
# (all these examples are active by default): |
|||
# ActiveSupport::Inflector.inflections do |inflect| |
|||
# inflect.plural /^(ox)$/i, '\1en' |
|||
# inflect.singular /^(ox)en/i, '\1' |
|||
# inflect.irregular 'person', 'people' |
|||
# inflect.uncountable %w( fish sheep ) |
|||
# end |
@ -0,0 +1,5 @@ |
|||
# Be sure to restart your server when you modify this file. |
|||
|
|||
# Add new mime types for use in respond_to blocks: |
|||
# Mime::Type.register "text/richtext", :rtf |
|||
# Mime::Type.register_alias "text/html", :iphone |
@ -0,0 +1,7 @@ |
|||
# Be sure to restart your server when you modify this file. |
|||
|
|||
# Your secret key for verifying the integrity of signed cookies. |
|||
# If you change this key, all old signed cookies will become invalid! |
|||
# Make sure the secret is at least 30 characters and all random, |
|||
# no regular words or you'll be exposed to dictionary attacks. |
|||
Aironeac::Application.config.secret_token = '8c726163583713debb3a24a1f53102e0ad50bea5b69b72013b105508c689d84ea417ceea8c3e621a84406af03308d0f0a5244dd9395b445616401a0e5355b27b' |
@ -0,0 +1,8 @@ |
|||
# Be sure to restart your server when you modify this file. |
|||
|
|||
Aironeac::Application.config.session_store :cookie_store, :key => '_aironeac_session' |
|||
|
|||
# Use the database for sessions instead of the cookie-based default, |
|||
# which shouldn't be used to store highly confidential information |
|||
# (create the session table with "rails generate session_migration") |
|||
# Aironeac::Application.config.session_store :active_record_store |
@ -0,0 +1,5 @@ |
|||
# Sample localization file for English. Add more files in this directory for other locales. |
|||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. |
|||
|
|||
en: |
|||
hello: "Hello world" |
@ -0,0 +1,58 @@ |
|||
Aironeac::Application.routes.draw do |
|||
# The priority is based upon order of creation: |
|||
# first created -> highest priority. |
|||
|
|||
# Sample of regular route: |
|||
# match 'products/:id' => 'catalog#view' |
|||
# Keep in mind you can assign values other than :controller and :action |
|||
|
|||
# Sample of named route: |
|||
# match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase |
|||
# This route can be invoked with purchase_url(:id => product.id) |
|||
|
|||
# Sample resource route (maps HTTP verbs to controller actions automatically): |
|||
# resources :products |
|||
|
|||
# Sample resource route with options: |
|||
# resources :products do |
|||
# member do |
|||
# get 'short' |
|||
# post 'toggle' |
|||
# end |
|||
# |
|||
# collection do |
|||
# get 'sold' |
|||
# end |
|||
# end |
|||
|
|||
# Sample resource route with sub-resources: |
|||
# resources :products do |
|||
# resources :comments, :sales |
|||
# resource :seller |
|||
# end |
|||
|
|||
# Sample resource route with more complex sub-resources |
|||
# resources :products do |
|||
# resources :comments |
|||
# resources :sales do |
|||
# get 'recent', :on => :collection |
|||
# end |
|||
# end |
|||
|
|||
# Sample resource route within a namespace: |
|||
# namespace :admin do |
|||
# # Directs /admin/products/* to Admin::ProductsController |
|||
# # (app/controllers/admin/products_controller.rb) |
|||
# resources :products |
|||
# end |
|||
|
|||
# You can have the root of your site routed with "root" |
|||
# just remember to delete public/index.html. |
|||
# root :to => "welcome#index" |
|||
|
|||
# See how all your routes lay out with "rake routes" |
|||
|
|||
# This is a legacy wild controller route that's not recommended for RESTful applications. |
|||
# Note: This route will make all actions in every controller accessible via GET requests. |
|||
# match ':controller(/:action(/:id(.:format)))' |
|||
end |
@ -0,0 +1,7 @@ |
|||
# This file should contain all the record creation needed to seed the database with its default values. |
|||
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). |
|||
# |
|||
# Examples: |
|||
# |
|||
# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }]) |
|||
# Mayor.create(:name => 'Daley', :city => cities.first) |
@ -0,0 +1,2 @@ |
|||
Use this README file to introduce your application and point to useful places in the API for learning more. |
|||
Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries. |
@ -0,0 +1,26 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<title>The page you were looking for doesn't exist (404)</title> |
|||
<style type="text/css"> |
|||
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } |
|||
div.dialog { |
|||
width: 25em; |
|||
padding: 0 4em; |
|||
margin: 4em auto 0 auto; |
|||
border: 1px solid #ccc; |
|||
border-right-color: #999; |
|||
border-bottom-color: #999; |
|||
} |
|||
h1 { font-size: 100%; color: #f00; line-height: 1.5em; } |
|||
</style> |
|||
</head> |
|||
|
|||
<body> |
|||
<!-- This file lives in public/404.html --> |
|||
<div class="dialog"> |
|||
<h1>The page you were looking for doesn't exist.</h1> |
|||
<p>You may have mistyped the address or the page may have moved.</p> |
|||
</div> |
|||
</body> |
|||
</html> |
@ -0,0 +1,26 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<title>The change you wanted was rejected (422)</title> |
|||
<style type="text/css"> |
|||
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } |
|||
div.dialog { |
|||
width: 25em; |
|||
padding: 0 4em; |
|||
margin: 4em auto 0 auto; |
|||
border: 1px solid #ccc; |
|||
border-right-color: #999; |
|||
border-bottom-color: #999; |
|||
} |
|||
h1 { font-size: 100%; color: #f00; line-height: 1.5em; } |
|||
</style> |
|||
</head> |
|||
|
|||
<body> |
|||
<!-- This file lives in public/422.html --> |
|||
<div class="dialog"> |
|||
<h1>The change you wanted was rejected.</h1> |
|||
<p>Maybe you tried to change something you didn't have access to.</p> |
|||
</div> |
|||
</body> |
|||
</html> |
@ -0,0 +1,26 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<title>We're sorry, but something went wrong (500)</title> |
|||
<style type="text/css"> |
|||
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } |
|||
div.dialog { |
|||
width: 25em; |
|||
padding: 0 4em; |
|||
margin: 4em auto 0 auto; |
|||
border: 1px solid #ccc; |
|||
border-right-color: #999; |
|||
border-bottom-color: #999; |
|||
} |
|||
h1 { font-size: 100%; color: #f00; line-height: 1.5em; } |
|||
</style> |
|||
</head> |
|||
|
|||
<body> |
|||
<!-- This file lives in public/500.html --> |
|||
<div class="dialog"> |
|||
<h1>We're sorry, but something went wrong.</h1> |
|||
<p>We've been notified about this issue and we'll take a look at it shortly.</p> |
|||
</div> |
|||
</body> |
|||
</html> |
After Width: 50 | Height: 64 | Size: 6.5 KiB |
@ -0,0 +1,239 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<title>Ruby on Rails: Welcome aboard</title> |
|||
<style type="text/css" media="screen"> |
|||
body { |
|||
margin: 0; |
|||
margin-bottom: 25px; |
|||
padding: 0; |
|||
background-color: #f0f0f0; |
|||
font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana"; |
|||
font-size: 13px; |
|||
color: #333; |
|||
} |
|||
|
|||
h1 { |
|||
font-size: 28px; |
|||
color: #000; |
|||
} |
|||
|
|||
a {color: #03c} |
|||
a:hover { |
|||
background-color: #03c; |
|||
color: white; |
|||
text-decoration: none; |
|||
} |
|||
|
|||
|
|||
#page { |
|||
background-color: #f0f0f0; |
|||
width: 750px; |
|||
margin: 0; |
|||
margin-left: auto; |
|||
margin-right: auto; |
|||
} |
|||
|
|||
#content { |
|||
float: left; |
|||
background-color: white; |
|||
border: 3px solid #aaa; |
|||
border-top: none; |
|||
padding: 25px; |
|||
width: 500px; |
|||
} |
|||
|
|||
#sidebar { |
|||
float: right; |
|||
width: 175px; |
|||
} |
|||
|
|||
#footer { |
|||
clear: both; |
|||
} |
|||
|
|||
|
|||
#header, #about, #getting-started { |
|||
padding-left: 75px; |
|||
padding-right: 30px; |
|||
} |
|||
|
|||
|
|||
#header { |
|||
background-image: url("images/rails.png"); |
|||
background-repeat: no-repeat; |
|||
background-position: top left; |
|||
height: 64px; |
|||
} |
|||
#header h1, #header h2 {margin: 0} |
|||
#header h2 { |
|||
color: #888; |
|||
font-weight: normal; |
|||
font-size: 16px; |
|||
} |
|||
|
|||
|
|||
#about h3 { |
|||
margin: 0; |
|||
margin-bottom: 10px; |
|||
font-size: 14px; |
|||
} |
|||
|
|||
#about-content { |
|||
background-color: #ffd; |
|||
border: 1px solid #fc0; |
|||
margin-left: -55px; |
|||
margin-right: -10px; |
|||
} |
|||
#about-content table { |
|||
margin-top: 10px; |
|||
margin-bottom: 10px; |
|||
font-size: 11px; |
|||
border-collapse: collapse; |
|||
} |
|||
#about-content td { |
|||
padding: 10px; |
|||
padding-top: 3px; |
|||
padding-bottom: 3px; |
|||
} |
|||
#about-content td.name {color: #555} |
|||
#about-content td.value {color: #000} |
|||
|
|||
#about-content ul { |
|||
padding: 0; |
|||
list-style-type: none; |
|||
} |
|||
|
|||
#about-content.failure { |
|||
background-color: #fcc; |
|||
border: 1px solid #f00; |
|||
} |
|||
#about-content.failure p { |
|||
margin: 0; |
|||
padding: 10px; |
|||
} |
|||
|
|||
|
|||
#getting-started { |
|||
border-top: 1px solid #ccc; |
|||
margin-top: 25px; |
|||
padding-top: 15px; |
|||
} |
|||
#getting-started h1 { |
|||
margin: 0; |
|||
font-size: 20px; |
|||
} |
|||
#getting-started h2 { |
|||
margin: 0; |
|||
font-size: 14px; |
|||
font-weight: normal; |
|||
color: #333; |
|||
margin-bottom: 25px; |
|||
} |
|||
#getting-started ol { |
|||
margin-left: 0; |
|||
padding-left: 0; |
|||
} |
|||
#getting-started li { |
|||
font-size: 18px; |
|||
color: #888; |
|||
margin-bottom: 25px; |
|||
} |
|||
#getting-started li h2 { |
|||
margin: 0; |
|||
font-weight: normal; |
|||
font-size: 18px; |
|||
color: #333; |
|||
} |
|||
#getting-started li p { |
|||
color: #555; |
|||
font-size: 13px; |
|||
} |
|||
|
|||
|
|||
#sidebar ul { |
|||
margin-left: 0; |
|||
padding-left: 0; |
|||
} |
|||
#sidebar ul h3 { |
|||
margin-top: 25px; |
|||
font-size: 16px; |
|||
padding-bottom: 10px; |
|||
border-bottom: 1px solid #ccc; |
|||
} |
|||
#sidebar li { |
|||
list-style-type: none; |
|||
} |
|||
#sidebar ul.links li { |
|||
margin-bottom: 5px; |
|||
} |
|||
|
|||
</style> |
|||
<script type="text/javascript"> |
|||
function about() { |
|||
info = document.getElementById('about-content'); |
|||
if (window.XMLHttpRequest) |
|||
{ xhr = new XMLHttpRequest(); } |
|||
else |
|||
{ xhr = new ActiveXObject("Microsoft.XMLHTTP"); } |
|||
xhr.open("GET","rails/info/properties",false); |
|||
xhr.send(""); |
|||
info.innerHTML = xhr.responseText; |
|||
info.style.display = 'block' |
|||
} |
|||
</script> |
|||
</head> |
|||
<body> |
|||
<div id="page"> |
|||
<div id="sidebar"> |
|||
<ul id="sidebar-items"> |
|||
<li> |
|||
<h3>Browse the documentation</h3> |
|||
<ul class="links"> |
|||
<li><a href="http://api.rubyonrails.org/">Rails API</a></li> |
|||
<li><a href="http://stdlib.rubyonrails.org/">Ruby standard library</a></li> |
|||
<li><a href="http://corelib.rubyonrails.org/">Ruby core</a></li> |
|||
<li><a href="http://guides.rubyonrails.org/">Rails Guides</a></li> |
|||
</ul> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
|
|||
<div id="content"> |
|||
<div id="header"> |
|||
<h1>Welcome aboard</h1> |
|||
<h2>You’re riding Ruby on Rails!</h2> |
|||
</div> |
|||
|
|||
<div id="about"> |
|||
<h3><a href="rails/info/properties" onclick="about(); return false">About your application’s environment</a></h3> |
|||
<div id="about-content" style="display: none"></div> |
|||
</div> |
|||
|
|||
<div id="getting-started"> |
|||
<h1>Getting started</h1> |
|||
<h2>Here’s how to get rolling:</h2> |
|||
|
|||
<ol> |
|||
<li> |
|||
<h2>Use <code>rails generate</code> to create your models and controllers</h2> |
|||
<p>To see all available options, run it without parameters.</p> |
|||
</li> |
|||
|
|||
<li> |
|||
<h2>Set up a default route and remove or rename this file</h2> |
|||
<p>Routes are set up in config/routes.rb.</p> |
|||
</li> |
|||
|
|||
<li> |
|||
<h2>Create your database</h2> |
|||
<p>Run <code>rake db:migrate</code> to create your database. If you're not using SQLite (the default), edit <code>config/database.yml</code> with your username and password.</p> |
|||
</li> |
|||
</ol> |
|||
</div> |
|||
</div> |
|||
|
|||
<div id="footer"> </div> |
|||
</div> |
|||
</body> |
|||
</html> |
@ -0,0 +1,5 @@ |
|||
# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file |
|||
# |
|||
# To ban all spiders from the entire site uncomment the next two lines: |
|||
# User-Agent: * |
|||
# Disallow: / |
@ -0,0 +1,6 @@ |
|||
#!/usr/bin/env ruby |
|||
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. |
|||
|
|||
APP_PATH = File.expand_path('../../config/application', __FILE__) |
|||
require File.expand_path('../../config/boot', __FILE__) |
|||
require 'rails/commands' |
Reference in new issue