├── .gitignore
├── Gemfile
├── Gemfile.lock
├── README
├── Rakefile
├── app
├── assets
│ ├── images
│ │ └── rails.png
│ ├── javascripts
│ │ └── application.js
│ └── stylesheets
│ │ ├── application.css
│ │ ├── comments.css.sass
│ │ └── layouts.css.sass
├── controllers
│ ├── application_controller.rb
│ └── comments_controller.rb
├── helpers
│ ├── application_helper.rb
│ ├── comments_helper.rb
│ ├── error_messages_helper.rb
│ └── layout_helper.rb
├── mailers
│ └── .gitkeep
├── models
│ ├── .gitkeep
│ └── comment.rb
└── views
│ ├── comments
│ ├── _comment.html.erb
│ ├── create.js.coffee
│ ├── destroy.js.coffee
│ └── index.html.erb
│ └── layouts
│ └── application.html.erb
├── config.ru
├── 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
├── db
├── migrate
│ └── 20110918153348_create_comments.rb
├── schema.rb
└── seeds.rb
├── doc
└── README_FOR_APP
├── lib
├── assets
│ └── .gitkeep
└── tasks
│ └── .gitkeep
├── log
└── .gitkeep
├── public
├── 404.html
├── 422.html
├── 500.html
├── favicon.ico
└── robots.txt
├── script
└── rails
└── vendor
├── assets
└── stylesheets
│ └── .gitkeep
└── plugins
└── .gitkeep
/.gitignore:
--------------------------------------------------------------------------------
1 | .bundle
2 | db/*.sqlite3
3 | log/*.log
4 | tmp/
5 | .sass-cache/
6 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'http://rubygems.org'
2 |
3 | gem 'rails', '3.1.0'
4 |
5 | # Bundle edge Rails instead:
6 | # gem 'rails', :git => 'git://github.com/rails/rails.git'
7 |
8 | gem 'sqlite3'
9 |
10 | gem 'nifty-generators', :group => :development
11 |
12 | # Gems used only for assets and not required
13 | # in production environments by default.
14 | group :assets do
15 | gem 'sass-rails', " ~> 3.1.0"
16 | gem 'coffee-rails', "~> 3.1.0"
17 | gem 'uglifier'
18 | end
19 |
20 | gem 'jquery-rails'
21 |
22 | # Use unicorn as the web server
23 | # gem 'unicorn'
24 |
25 | # Deploy with Capistrano
26 | # gem 'capistrano'
27 |
28 | # To use debugger
29 | # gem 'ruby-debug19', :require => 'ruby-debug'
30 |
31 | group :test do
32 | # Pretty printed test output
33 | gem 'turn', :require => false
34 | end
35 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: http://rubygems.org/
3 | specs:
4 | actionmailer (3.1.0)
5 | actionpack (= 3.1.0)
6 | mail (~> 2.3.0)
7 | actionpack (3.1.0)
8 | activemodel (= 3.1.0)
9 | activesupport (= 3.1.0)
10 | builder (~> 3.0.0)
11 | erubis (~> 2.7.0)
12 | i18n (~> 0.6)
13 | rack (~> 1.3.2)
14 | rack-cache (~> 1.0.3)
15 | rack-mount (~> 0.8.2)
16 | rack-test (~> 0.6.1)
17 | sprockets (~> 2.0.0)
18 | activemodel (3.1.0)
19 | activesupport (= 3.1.0)
20 | bcrypt-ruby (~> 3.0.0)
21 | builder (~> 3.0.0)
22 | i18n (~> 0.6)
23 | activerecord (3.1.0)
24 | activemodel (= 3.1.0)
25 | activesupport (= 3.1.0)
26 | arel (~> 2.2.1)
27 | tzinfo (~> 0.3.29)
28 | activeresource (3.1.0)
29 | activemodel (= 3.1.0)
30 | activesupport (= 3.1.0)
31 | activesupport (3.1.0)
32 | multi_json (~> 1.0)
33 | ansi (1.3.0)
34 | arel (2.2.1)
35 | bcrypt-ruby (3.0.1)
36 | builder (3.0.0)
37 | coffee-rails (3.1.1)
38 | coffee-script (>= 2.2.0)
39 | railties (~> 3.1.0)
40 | coffee-script (2.2.0)
41 | coffee-script-source
42 | execjs
43 | coffee-script-source (1.1.2)
44 | erubis (2.7.0)
45 | execjs (1.2.6)
46 | multi_json (~> 1.0)
47 | hike (1.2.1)
48 | i18n (0.6.0)
49 | jquery-rails (1.0.14)
50 | railties (~> 3.0)
51 | thor (~> 0.14)
52 | mail (2.3.0)
53 | i18n (>= 0.4.0)
54 | mime-types (~> 1.16)
55 | treetop (~> 1.4.8)
56 | mime-types (1.16)
57 | multi_json (1.0.3)
58 | nifty-generators (0.4.6)
59 | polyglot (0.3.2)
60 | rack (1.3.3)
61 | rack-cache (1.0.3)
62 | rack (>= 0.4)
63 | rack-mount (0.8.3)
64 | rack (>= 1.0.0)
65 | rack-ssl (1.3.2)
66 | rack
67 | rack-test (0.6.1)
68 | rack (>= 1.0)
69 | rails (3.1.0)
70 | actionmailer (= 3.1.0)
71 | actionpack (= 3.1.0)
72 | activerecord (= 3.1.0)
73 | activeresource (= 3.1.0)
74 | activesupport (= 3.1.0)
75 | bundler (~> 1.0)
76 | railties (= 3.1.0)
77 | railties (3.1.0)
78 | actionpack (= 3.1.0)
79 | activesupport (= 3.1.0)
80 | rack-ssl (~> 1.3.2)
81 | rake (>= 0.8.7)
82 | rdoc (~> 3.4)
83 | thor (~> 0.14.6)
84 | rake (0.9.2)
85 | rdoc (3.9.4)
86 | sass (3.1.7)
87 | sass-rails (3.1.2)
88 | actionpack (~> 3.1.0)
89 | railties (~> 3.1.0)
90 | sass (>= 3.1.4)
91 | sprockets (~> 2.0.0)
92 | tilt (~> 1.3.2)
93 | sprockets (2.0.0)
94 | hike (~> 1.2)
95 | rack (~> 1.0)
96 | tilt (!= 1.3.0, ~> 1.1)
97 | sqlite3 (1.3.4)
98 | thor (0.14.6)
99 | tilt (1.3.3)
100 | treetop (1.4.10)
101 | polyglot
102 | polyglot (>= 0.3.1)
103 | turn (0.8.2)
104 | ansi (>= 1.2.2)
105 | tzinfo (0.3.29)
106 | uglifier (1.0.3)
107 | execjs (>= 0.3.0)
108 | multi_json (>= 1.0.2)
109 |
110 | PLATFORMS
111 | ruby
112 |
113 | DEPENDENCIES
114 | coffee-rails (~> 3.1.0)
115 | jquery-rails
116 | nifty-generators
117 | rails (= 3.1.0)
118 | sass-rails (~> 3.1.0)
119 | sqlite3
120 | turn
121 | uglifier
122 |
--------------------------------------------------------------------------------
/README:
--------------------------------------------------------------------------------
1 | Demo application for using unobtrusive AJAX with Rails 3.1
2 |
--------------------------------------------------------------------------------
/Rakefile:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env rake
2 | # Add your own tasks in files placed in lib/tasks ending in .rake,
3 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4 |
5 | require File.expand_path('../config/application', __FILE__)
6 |
7 | AjaxRails31Demo::Application.load_tasks
8 |
--------------------------------------------------------------------------------
/app/assets/images/rails.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samnang/ajax_rails31_demo/55ae80ebe6455db964d4179db0aa7c35fd3199aa/app/assets/images/rails.png
--------------------------------------------------------------------------------
/app/assets/javascripts/application.js:
--------------------------------------------------------------------------------
1 | // This is a manifest file that'll be compiled into including all the files listed below.
2 | // Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
3 | // be included in the compiled file accessible from http://example.com/assets/application.js
4 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
5 | // the compiled file.
6 | //
7 | //= require jquery
8 | //= require jquery_ujs
9 | //= require_tree .
10 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/application.css:
--------------------------------------------------------------------------------
1 | /*
2 | * This is a manifest file that'll automatically include all the stylesheets available in this directory
3 | * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4 | * the top of the compiled file, but it's generally better to create a new file per style scope.
5 | *= require_self
6 | *= require_tree .
7 | */
8 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/comments.css.sass:
--------------------------------------------------------------------------------
1 | #comments
2 | font-size: 12px
3 | width: 325px
4 |
5 | #comments_count
6 | font-size: 16px
7 | font-weight: bold
8 |
9 | .comment
10 | border-bottom: solid 1px #999
11 | margin: 15px 0
12 | .author_name
13 | font-weight: bold
14 | &:last-child
15 | border-bottom: none
16 | a
17 | float: right
18 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/layouts.css.sass:
--------------------------------------------------------------------------------
1 | body
2 | background-color: #4B7399
3 | font-family: Verdana, Helvetica, Arial
4 | font-size: 14px
5 |
6 | a
7 | img
8 | border: none
9 | color: #0000FF
10 |
11 | .clear
12 | clear: both
13 | height: 0
14 | overflow: hidden
15 |
16 | #container
17 | width: 75%
18 | margin: 0 auto
19 | background-color: #FFF
20 | padding: 20px 40px
21 | border: solid 1px black
22 | margin-top: 20px
23 |
24 | #flash_notice, #flash_error, #flash_alert
25 | padding: 5px 8px
26 | margin: 10px 0
27 |
28 | #flash_notice
29 | background-color: #CFC
30 | border: solid 1px #6C6
31 |
32 | #flash_error, #flash_alert
33 | background-color: #FCC
34 | border: solid 1px #C66
35 |
36 | .fieldWithErrors
37 | display: inline
38 |
39 | .error_messages
40 | width: 400px
41 | border: 2px solid #CF0000
42 | padding: 0px
43 | padding-bottom: 12px
44 | margin-bottom: 20px
45 | background-color: #f0f0f0
46 | font-size: 12px
47 | h2
48 | text-align: left
49 | font-weight: bold
50 | padding: 5px 10px
51 | font-size: 12px
52 | margin: 0
53 | background-color: #c00
54 | color: #fff
55 | p
56 | margin: 8px 10px
57 | ul
58 | margin: 0
59 |
--------------------------------------------------------------------------------
/app/controllers/application_controller.rb:
--------------------------------------------------------------------------------
1 | class ApplicationController < ActionController::Base
2 | protect_from_forgery
3 | end
4 |
--------------------------------------------------------------------------------
/app/controllers/comments_controller.rb:
--------------------------------------------------------------------------------
1 | class CommentsController < ApplicationController
2 | respond_to :html, :js
3 |
4 | def index
5 | @comments = Comment.all
6 | end
7 |
8 | def create
9 | @comment = Comment.new(params[:comment])
10 |
11 | @comment.save
12 |
13 | respond_with @comment, :location => comments_url
14 | end
15 |
16 | def destroy
17 | @comment = Comment.find(params[:id])
18 |
19 | @comment.destroy
20 |
21 | respond_with @comment, :location => comments_url
22 | end
23 | end
24 |
--------------------------------------------------------------------------------
/app/helpers/application_helper.rb:
--------------------------------------------------------------------------------
1 | module ApplicationHelper
2 | end
3 |
--------------------------------------------------------------------------------
/app/helpers/comments_helper.rb:
--------------------------------------------------------------------------------
1 | module CommentsHelper
2 | def comments_count
3 | pluralize(Comment.count, "comment")
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/app/helpers/error_messages_helper.rb:
--------------------------------------------------------------------------------
1 | module ErrorMessagesHelper
2 | # Render error messages for the given objects. The :message and :header_message options are allowed.
3 | def error_messages_for(*objects)
4 | options = objects.extract_options!
5 | options[:header_message] ||= I18n.t(:"activerecord.errors.header", :default => "Invalid Fields")
6 | options[:message] ||= I18n.t(:"activerecord.errors.message", :default => "Correct the following errors and try again.")
7 | messages = objects.compact.map { |o| o.errors.full_messages }.flatten
8 | unless messages.empty?
9 | content_tag(:div, :class => "error_messages") do
10 | list_items = messages.map { |msg| content_tag(:li, msg) }
11 | content_tag(:h2, options[:header_message]) + content_tag(:p, options[:message]) + content_tag(:ul, list_items.join.html_safe)
12 | end
13 | end
14 | end
15 |
16 | module FormBuilderAdditions
17 | def error_messages(options = {})
18 | @template.error_messages_for(@object, options)
19 | end
20 | end
21 | end
22 |
23 | ActionView::Helpers::FormBuilder.send(:include, ErrorMessagesHelper::FormBuilderAdditions)
24 |
--------------------------------------------------------------------------------
/app/helpers/layout_helper.rb:
--------------------------------------------------------------------------------
1 | # These helper methods can be called in your template to set variables to be used in the layout
2 | # This module should be included in all views globally,
3 | # to do so you may need to add this line to your ApplicationController
4 | # helper :layout
5 | module LayoutHelper
6 | def title(page_title, show_title = true)
7 | content_for(:title) { h(page_title.to_s) }
8 | @show_title = show_title
9 | end
10 |
11 | def show_title?
12 | @show_title
13 | end
14 |
15 | def stylesheet(*args)
16 | content_for(:head) { stylesheet_link_tag(*args) }
17 | end
18 |
19 | def javascript(*args)
20 | content_for(:head) { javascript_include_tag(*args) }
21 | end
22 | end
23 |
--------------------------------------------------------------------------------
/app/mailers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samnang/ajax_rails31_demo/55ae80ebe6455db964d4179db0aa7c35fd3199aa/app/mailers/.gitkeep
--------------------------------------------------------------------------------
/app/models/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samnang/ajax_rails31_demo/55ae80ebe6455db964d4179db0aa7c35fd3199aa/app/models/.gitkeep
--------------------------------------------------------------------------------
/app/models/comment.rb:
--------------------------------------------------------------------------------
1 | class Comment < ActiveRecord::Base
2 | attr_accessible :name, :content
3 | end
4 |
--------------------------------------------------------------------------------
/app/views/comments/_comment.html.erb:
--------------------------------------------------------------------------------
1 |
class="comment">
2 | <%= comment.name %>
3 | on <%= comment.created_at.strftime('%b %d, %Y at %I:%M %p') %>
4 | <%= link_to "Remove", comment, :method => :delete, :remote => true %>
5 | <%= simple_format comment.content %>
6 |
7 |
--------------------------------------------------------------------------------
/app/views/comments/create.js.coffee:
--------------------------------------------------------------------------------
1 | $('<%= escape_javascript(render(:partial => @comment))%>')
2 | .appendTo('#comments')
3 | .hide()
4 | .fadeIn()
5 |
6 | $('#new_comment')[0].reset()
7 |
8 | $('#comments_count').html '<%= comments_count %>'
9 |
--------------------------------------------------------------------------------
/app/views/comments/destroy.js.coffee:
--------------------------------------------------------------------------------
1 | $('#comments_count').html '<%= comments_count %>'
2 |
3 | $('#<%= dom_id(@comment) %>')
4 | .fadeOut ->
5 | $(this).remove()
6 |
--------------------------------------------------------------------------------
/app/views/comments/index.html.erb:
--------------------------------------------------------------------------------
1 | <% title "Comments for Ajax in Rails 3.1" %>
2 |
3 |
4 |
5 |
8 |
9 | Add your comment:
10 |
11 | <%= form_for Comment.new, :remote => true do |f| %>
12 | <%= f.error_messages %>
13 |
14 | <%= f.label :name %>
15 | <%= f.text_field :name %>
16 |
17 |
18 | <%= f.label :content, "Comment" %>
19 | <%= f.text_area :content, :rows => '12', :cols => 35 %>
20 |
21 | <%= f.submit %>
22 | <% end %>
23 |
--------------------------------------------------------------------------------
/app/views/layouts/application.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <%= content_for?(:title) ? yield(:title) : "Untitled" %>
5 | <%= stylesheet_link_tag "application" %>
6 | <%= javascript_include_tag "application" %>
7 | <%= csrf_meta_tag %>
8 | <%= yield(:head) %>
9 |
10 |
11 |
12 | <% flash.each do |name, msg| %>
13 | <%= content_tag :div, msg, :id => "flash_#{name}" %>
14 | <% end %>
15 | <%= content_tag :h1, yield(:title) if show_title? %>
16 | <%= yield %>
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/config.ru:
--------------------------------------------------------------------------------
1 | # This file is used by Rack-based servers to start the application.
2 |
3 | require ::File.expand_path('../config/environment', __FILE__)
4 | run AjaxRails31Demo::Application
5 |
--------------------------------------------------------------------------------
/config/application.rb:
--------------------------------------------------------------------------------
1 | require File.expand_path('../boot', __FILE__)
2 |
3 | require 'rails/all'
4 |
5 | if defined?(Bundler)
6 | # If you precompile assets before deploying to production, use this line
7 | Bundler.require *Rails.groups(:assets => %w(development test))
8 | # If you want your assets lazily compiled in production, use this line
9 | # Bundler.require(:default, :assets, Rails.env)
10 | end
11 |
12 | module AjaxRails31Demo
13 | class Application < Rails::Application
14 | # Settings in config/environments/* take precedence over those specified here.
15 | # Application configuration should go into files in config/initializers
16 | # -- all .rb files in that directory are automatically loaded.
17 |
18 | # Custom directories with classes and modules you want to be autoloadable.
19 | # config.autoload_paths += %W(#{config.root}/extras)
20 |
21 | # Only load the plugins named here, in the order given (default is alphabetical).
22 | # :all can be used as a placeholder for all plugins not explicitly named.
23 | # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
24 |
25 | # Activate observers that should always be running.
26 | # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
27 |
28 | # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
29 | # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
30 | # config.time_zone = 'Central Time (US & Canada)'
31 |
32 | # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
33 | # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
34 | # config.i18n.default_locale = :de
35 |
36 | # Configure the default encoding used in templates for Ruby 1.9.
37 | config.encoding = "utf-8"
38 |
39 | # Configure sensitive parameters which will be filtered from the log file.
40 | config.filter_parameters += [:password]
41 |
42 | # Enable the asset pipeline
43 | config.assets.enabled = true
44 |
45 | # Version of your assets, change this if you want to expire all your assets
46 | config.assets.version = '1.0'
47 | end
48 | end
49 |
--------------------------------------------------------------------------------
/config/boot.rb:
--------------------------------------------------------------------------------
1 | require 'rubygems'
2 |
3 | # Set up gems listed in the Gemfile.
4 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5 |
6 | require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
7 |
--------------------------------------------------------------------------------
/config/database.yml:
--------------------------------------------------------------------------------
1 | # SQLite version 3.x
2 | # gem install sqlite3
3 | #
4 | # Ensure the SQLite 3 gem is defined in your Gemfile
5 | # gem 'sqlite3'
6 | development:
7 | adapter: sqlite3
8 | database: db/development.sqlite3
9 | pool: 5
10 | timeout: 5000
11 |
12 | # Warning: The database defined as "test" will be erased and
13 | # re-generated from your development database when you run "rake".
14 | # Do not set this db to the same as development or production.
15 | test:
16 | adapter: sqlite3
17 | database: db/test.sqlite3
18 | pool: 5
19 | timeout: 5000
20 |
21 | production:
22 | adapter: sqlite3
23 | database: db/production.sqlite3
24 | pool: 5
25 | timeout: 5000
26 |
--------------------------------------------------------------------------------
/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the rails application
2 | require File.expand_path('../application', __FILE__)
3 |
4 | # Initialize the rails application
5 | AjaxRails31Demo::Application.initialize!
6 |
--------------------------------------------------------------------------------
/config/environments/development.rb:
--------------------------------------------------------------------------------
1 | AjaxRails31Demo::Application.configure do
2 | # Settings specified here will take precedence over those in config/application.rb
3 |
4 | # In the development environment your application's code is reloaded on
5 | # every request. This slows down response time but is perfect for development
6 | # since you don't have to restart the web server when you make code changes.
7 | config.cache_classes = false
8 |
9 | # Log error messages when you accidentally call methods on nil.
10 | config.whiny_nils = true
11 |
12 | # Show full error reports and disable caching
13 | config.consider_all_requests_local = true
14 | config.action_controller.perform_caching = false
15 |
16 | # Don't care if the mailer can't send
17 | config.action_mailer.raise_delivery_errors = false
18 |
19 | # Print deprecation notices to the Rails logger
20 | config.active_support.deprecation = :log
21 |
22 | # Only use best-standards-support built into browsers
23 | config.action_dispatch.best_standards_support = :builtin
24 |
25 | # Do not compress assets
26 | config.assets.compress = false
27 |
28 | # Expands the lines which load the assets
29 | config.assets.debug = true
30 | end
31 |
--------------------------------------------------------------------------------
/config/environments/production.rb:
--------------------------------------------------------------------------------
1 | AjaxRails31Demo::Application.configure do
2 | # Settings specified here will take precedence over those in config/application.rb
3 |
4 | # Code is not reloaded between requests
5 | config.cache_classes = true
6 |
7 | # Full error reports are disabled and caching is turned on
8 | config.consider_all_requests_local = false
9 | config.action_controller.perform_caching = true
10 |
11 | # Disable Rails's static asset server (Apache or nginx will already do this)
12 | config.serve_static_assets = false
13 |
14 | # Compress JavaScripts and CSS
15 | config.assets.compress = true
16 |
17 | # Don't fallback to assets pipeline if a precompiled asset is missed
18 | config.assets.compile = false
19 |
20 | # Generate digests for assets URLs
21 | config.assets.digest = true
22 |
23 | # Defaults to Rails.root.join("public/assets")
24 | # config.assets.manifest = YOUR_PATH
25 |
26 | # Specifies the header that your server uses for sending files
27 | # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
28 | # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
29 |
30 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
31 | # config.force_ssl = true
32 |
33 | # See everything in the log (default is :info)
34 | # config.log_level = :debug
35 |
36 | # Use a different logger for distributed setups
37 | # config.logger = SyslogLogger.new
38 |
39 | # Use a different cache store in production
40 | # config.cache_store = :mem_cache_store
41 |
42 | # Enable serving of images, stylesheets, and JavaScripts from an asset server
43 | # config.action_controller.asset_host = "http://assets.example.com"
44 |
45 | # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
46 | # config.assets.precompile += %w( search.js )
47 |
48 | # Disable delivery errors, bad email addresses will be ignored
49 | # config.action_mailer.raise_delivery_errors = false
50 |
51 | # Enable threaded mode
52 | # config.threadsafe!
53 |
54 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
55 | # the I18n.default_locale when a translation can not be found)
56 | config.i18n.fallbacks = true
57 |
58 | # Send deprecation notices to registered listeners
59 | config.active_support.deprecation = :notify
60 | end
61 |
--------------------------------------------------------------------------------
/config/environments/test.rb:
--------------------------------------------------------------------------------
1 | AjaxRails31Demo::Application.configure do
2 | # Settings specified here will take precedence over those in config/application.rb
3 |
4 | # The test environment is used exclusively to run your application's
5 | # test suite. You never need to work with it otherwise. Remember that
6 | # your test database is "scratch space" for the test suite and is wiped
7 | # and recreated between test runs. Don't rely on the data there!
8 | config.cache_classes = true
9 |
10 | # Configure static asset server for tests with Cache-Control for performance
11 | config.serve_static_assets = true
12 | config.static_cache_control = "public, max-age=3600"
13 |
14 | # Log error messages when you accidentally call methods on nil
15 | config.whiny_nils = true
16 |
17 | # Show full error reports and disable caching
18 | config.consider_all_requests_local = true
19 | config.action_controller.perform_caching = false
20 |
21 | # Raise exceptions instead of rendering exception templates
22 | config.action_dispatch.show_exceptions = false
23 |
24 | # Disable request forgery protection in test environment
25 | config.action_controller.allow_forgery_protection = false
26 |
27 | # Tell Action Mailer not to deliver emails to the real world.
28 | # The :test delivery method accumulates sent emails in the
29 | # ActionMailer::Base.deliveries array.
30 | config.action_mailer.delivery_method = :test
31 |
32 | # Use SQL instead of Active Record's schema dumper when creating the test database.
33 | # This is necessary if your schema can't be completely dumped by the schema dumper,
34 | # like if you have constraints or database-specific column types
35 | # config.active_record.schema_format = :sql
36 |
37 | # Print deprecation notices to the stderr
38 | config.active_support.deprecation = :stderr
39 |
40 | # Allow pass debug_assets=true as a query parameter to load pages with unpackaged assets
41 | config.assets.allow_debugging = true
42 | end
43 |
--------------------------------------------------------------------------------
/config/initializers/backtrace_silencers.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5 |
6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7 | # Rails.backtrace_cleaner.remove_silencers!
8 |
--------------------------------------------------------------------------------
/config/initializers/inflections.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new inflection rules using the following format
4 | # (all these examples are active by default):
5 | # ActiveSupport::Inflector.inflections do |inflect|
6 | # inflect.plural /^(ox)$/i, '\1en'
7 | # inflect.singular /^(ox)en/i, '\1'
8 | # inflect.irregular 'person', 'people'
9 | # inflect.uncountable %w( fish sheep )
10 | # end
11 |
--------------------------------------------------------------------------------
/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 | # Mime::Type.register_alias "text/html", :iphone
6 |
--------------------------------------------------------------------------------
/config/initializers/secret_token.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Your secret key for verifying the integrity of signed cookies.
4 | # If you change this key, all old signed cookies will become invalid!
5 | # Make sure the secret is at least 30 characters and all random,
6 | # no regular words or you'll be exposed to dictionary attacks.
7 | AjaxRails31Demo::Application.config.secret_token = 'a728b9a95525de0e1427337cb82c09fbe451d29df2c723b94f0ab7f6d73977fa9be1d94cfb075be1ff5a4db5085d5815e6d1821e17c02c4fb860fe5622259af9'
8 |
--------------------------------------------------------------------------------
/config/initializers/session_store.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | AjaxRails31Demo::Application.config.session_store :cookie_store, key: '_ajax_rails31_demo_session'
4 |
5 | # Use the database for sessions instead of the cookie-based default,
6 | # which shouldn't be used to store highly confidential information
7 | # (create the session table with "rails generate session_migration")
8 | # AjaxRails31Demo::Application.config.session_store :active_record_store
9 |
--------------------------------------------------------------------------------
/config/initializers/wrap_parameters.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 | #
3 | # This file contains settings for ActionController::ParamsWrapper which
4 | # is enabled by default.
5 |
6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7 | ActiveSupport.on_load(:action_controller) do
8 | wrap_parameters format: [:json]
9 | end
10 |
11 | # Disable root element in JSON by default.
12 | ActiveSupport.on_load(:active_record) do
13 | self.include_root_in_json = false
14 | end
15 |
--------------------------------------------------------------------------------
/config/locales/en.yml:
--------------------------------------------------------------------------------
1 | # Sample localization file for English. Add more files in this directory for other locales.
2 | # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3 |
4 | en:
5 | hello: "Hello world"
6 |
--------------------------------------------------------------------------------
/config/routes.rb:
--------------------------------------------------------------------------------
1 | AjaxRails31Demo::Application.routes.draw do
2 | resources :comments
3 |
4 | # The priority is based upon order of creation:
5 | # first created -> highest priority.
6 |
7 | # Sample of regular route:
8 | # match 'products/:id' => 'catalog#view'
9 | # Keep in mind you can assign values other than :controller and :action
10 |
11 | # Sample of named route:
12 | # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
13 | # This route can be invoked with purchase_url(:id => product.id)
14 |
15 | # Sample resource route (maps HTTP verbs to controller actions automatically):
16 | # resources :products
17 |
18 | # Sample resource route with options:
19 | # resources :products do
20 | # member do
21 | # get 'short'
22 | # post 'toggle'
23 | # end
24 | #
25 | # collection do
26 | # get 'sold'
27 | # end
28 | # end
29 |
30 | # Sample resource route with sub-resources:
31 | # resources :products do
32 | # resources :comments, :sales
33 | # resource :seller
34 | # end
35 |
36 | # Sample resource route with more complex sub-resources
37 | # resources :products do
38 | # resources :comments
39 | # resources :sales do
40 | # get 'recent', :on => :collection
41 | # end
42 | # end
43 |
44 | # Sample resource route within a namespace:
45 | # namespace :admin do
46 | # # Directs /admin/products/* to Admin::ProductsController
47 | # # (app/controllers/admin/products_controller.rb)
48 | # resources :products
49 | # end
50 |
51 | # You can have the root of your site routed with "root"
52 | # just remember to delete public/index.html.
53 | # root :to => 'welcome#index'
54 |
55 | # See how all your routes lay out with "rake routes"
56 |
57 | # This is a legacy wild controller route that's not recommended for RESTful applications.
58 | # Note: This route will make all actions in every controller accessible via GET requests.
59 | # match ':controller(/:action(/:id(.:format)))'
60 | end
61 |
--------------------------------------------------------------------------------
/db/migrate/20110918153348_create_comments.rb:
--------------------------------------------------------------------------------
1 | class CreateComments < ActiveRecord::Migration
2 | def self.up
3 | create_table :comments do |t|
4 | t.string :name
5 | t.text :content
6 | t.timestamps
7 | end
8 | end
9 |
10 | def self.down
11 | drop_table :comments
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/db/schema.rb:
--------------------------------------------------------------------------------
1 | # encoding: UTF-8
2 | # This file is auto-generated from the current state of the database. Instead
3 | # of editing this file, please use the migrations feature of Active Record to
4 | # incrementally modify your database, and then regenerate this schema definition.
5 | #
6 | # Note that this schema.rb definition is the authoritative source for your
7 | # database schema. If you need to create the application database on another
8 | # system, you should be using db:schema:load, not running all the migrations
9 | # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10 | # you'll amass, the slower it'll run and the greater likelihood for issues).
11 | #
12 | # It's strongly recommended to check this file into your version control system.
13 |
14 | ActiveRecord::Schema.define(:version => 20110918153348) do
15 |
16 | create_table "comments", :force => true do |t|
17 | t.string "name"
18 | t.text "content"
19 | t.datetime "created_at"
20 | t.datetime "updated_at"
21 | end
22 |
23 | end
24 |
--------------------------------------------------------------------------------
/db/seeds.rb:
--------------------------------------------------------------------------------
1 | # This file should contain all the record creation needed to seed the database with its default values.
2 | # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3 | #
4 | # Examples:
5 | #
6 | # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7 | # Mayor.create(name: 'Emanuel', city: cities.first)
8 |
--------------------------------------------------------------------------------
/doc/README_FOR_APP:
--------------------------------------------------------------------------------
1 | Use this README file to introduce your application and point to useful places in the API for learning more.
2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
3 |
--------------------------------------------------------------------------------
/lib/assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samnang/ajax_rails31_demo/55ae80ebe6455db964d4179db0aa7c35fd3199aa/lib/assets/.gitkeep
--------------------------------------------------------------------------------
/lib/tasks/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samnang/ajax_rails31_demo/55ae80ebe6455db964d4179db0aa7c35fd3199aa/lib/tasks/.gitkeep
--------------------------------------------------------------------------------
/log/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samnang/ajax_rails31_demo/55ae80ebe6455db964d4179db0aa7c35fd3199aa/log/.gitkeep
--------------------------------------------------------------------------------
/public/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The page you were looking for doesn't exist (404)
5 |
17 |
18 |
19 |
20 |
21 |
22 |
The page you were looking for doesn't exist.
23 |
You may have mistyped the address or the page may have moved.
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/public/422.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The change you wanted was rejected (422)
5 |
17 |
18 |
19 |
20 |
21 |
22 |
The change you wanted was rejected.
23 |
Maybe you tried to change something you didn't have access to.
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/public/500.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | We're sorry, but something went wrong (500)
5 |
17 |
18 |
19 |
20 |
21 |
22 |
We're sorry, but something went wrong.
23 |
We've been notified about this issue and we'll take a look at it shortly.
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samnang/ajax_rails31_demo/55ae80ebe6455db964d4179db0aa7c35fd3199aa/public/favicon.ico
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2 | #
3 | # To ban all spiders from the entire site uncomment the next two lines:
4 | # User-Agent: *
5 | # Disallow: /
6 |
--------------------------------------------------------------------------------
/script/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3 |
4 | APP_PATH = File.expand_path('../../config/application', __FILE__)
5 | require File.expand_path('../../config/boot', __FILE__)
6 | require 'rails/commands'
7 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samnang/ajax_rails31_demo/55ae80ebe6455db964d4179db0aa7c35fd3199aa/vendor/assets/stylesheets/.gitkeep
--------------------------------------------------------------------------------
/vendor/plugins/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samnang/ajax_rails31_demo/55ae80ebe6455db964d4179db0aa7c35fd3199aa/vendor/plugins/.gitkeep
--------------------------------------------------------------------------------