Rails::Engine module Devise class Engine < ::Rails::Engine config.app_middleware.use Warden::Manager do |config| Devise.warden_config = config end config.before_eager_load { |app| app.reload_routes! } initializer "devise.url_helpers" do # ... end initializer "devise.omniauth" do |app| # ... end end end https://github.com/plataformatec/devise
Rails::Engine module Devise class Engine < ::Rails::Engine config.app_middleware.use Warden::Manager do |config| Devise.warden_config = config end config.before_eager_load { |app| app.reload_routes! } initializer "devise.url_helpers" do # ... end initializer "devise.omniauth" do |app| # ... end end end https://github.com/plataformatec/devise
Rails::Engine module Devise class Engine < ::Rails::Engine config.app_middleware.use Warden::Manager do |config| Devise.warden_config = config end config.before_eager_load { |app| app.reload_routes! } initializer "devise.url_helpers" do # ... end initializer "devise.omniauth" do |app| # ... end end end https://github.com/plataformatec/devise
Rails::Engine module Devise class Engine < ::Rails::Engine config.app_middleware.use Warden::Manager do |config| Devise.warden_config = config end config.before_eager_load { |app| app.reload_routes! } initializer "devise.url_helpers" do # ... end initializer "devise.omniauth" do |app| # ... end end end https://github.com/plataformatec/devise
Mountable Engines # ENGINE/config/routes.rb MyBlogEngine::Engine.routes.draw do resources :posts do resources :comments end end MyRailsApp::Application.routes.draw do mount MyBlogEngine::Engine => "/blog" end
Isolated Engines module MyBlog class Engine < Rails::Engine end end MyBlog::Engine.routes.draw do resources :posts end MyRailsApp::Application.routes.draw do resources :posts mount MyBlog::Engine => "/blog" end posts_path # => PostsController#index
Isolated Engines module MyBlog class Engine < Rails::Engine isolate_namespace MyBlog end end MyBlog::Engine.routes.draw do resources :posts end posts_path # => MyBlog::PostsController#index
Isolated Engines # config/routes.rb MyApplication::Application.routes.draw do mount MyBlog::Engine => "/blog", :as => "my_blog" get "/foo" => "foo#index" end
Isolated Engines # config/routes.rb MyApplication::Application.routes.draw do mount MyBlog::Engine => "/blog", :as => "my_blog" get "/foo" => "foo#index" end
ActionController::Metal class HelloController < ActionController::Metal include ActionController::Rendering append_view_path "#{Rails.root}/app/views" def index render "hello/index" end end
class UsersController < ActionController::Base def create @user = User.new params[:user] if @user.save UserMailer.deliver_welcome_email @user end respond_with @user end end Rails 3
class UsersController < ActionController::Base def create @user = User.new params[:user] if @user.save UserMailer.deliver_welcome_email @user end respond_with @user end end Rails 3
class UsersController < ActionController::Base def create @user = User.new params[:user] if @user.save UserMailer.deliver_welcome_email @user end respond_with @user end end Rails 4
class ExplainSubscriber # :nodoc: def start(name, id, payload) # unused end def finish(name, id, payload) if queries = Thread.current[:queries] unless ignore_payload?(payload) queries << payload.values_at(:sql, :binds) end end end ActiveSupport::Notifications. subscribe("sql.active_record", new) end
class ExplainSubscriber # :nodoc: def start(name, id, payload) # unused end def finish(name, id, payload) if queries = Thread.current[:queries] unless ignore_payload?(payload) queries << payload.values_at(:sql, :binds) end end end ActiveSupport::Notifications. subscribe("sql.active_record", new) end
class ExplainSubscriber # :nodoc: def start(name, id, payload) # unused end def finish(name, id, payload) if queries = Thread.current[:queries] unless ignore_payload?(payload) queries << payload.values_at(:sql, :binds) end end end ActiveSupport::Notifications. subscribe("sql.active_record", new) end
class ExplainSubscriber # :nodoc: def start(name, id, payload) # unused end def finish(name, id, payload) if queries = Thread.current[:queries] unless ignore_payload?(payload) queries << payload.values_at(:sql, :binds) end end end ActiveSupport::Notifications. subscribe("sql.active_record", new) end
def logging_query_plan # ... begin queries = current[:queries] = [] start = Time.now result = yield if Time.now - start > threshold logger.warn(exec_explain(queries)) end result ensure current[:queries] = nil end end
def logging_query_plan # ... begin queries = current[:queries] = [] start = Time.now result = yield if Time.now - start > threshold logger.warn(exec_explain(queries)) end result ensure current[:queries] = nil end end
def logging_query_plan # ... begin queries = current[:queries] = [] start = Time.now result = yield if Time.now - start > threshold logger.warn(exec_explain(queries)) end result ensure current[:queries] = nil end end
def logging_query_plan # ... begin queries = current[:queries] = [] start = Time.now result = yield if Time.now - start > threshold logger.warn(exec_explain(queries)) end result ensure current[:queries] = nil end end
class ExplainSubscriber # :nodoc: def start(name, id, payload) # unused end def finish(name, id, payload) if queries = Thread.current[:queries] unless ignore_payload?(payload) queries << payload.values_at(:sql, :binds) end end end ActiveSupport::Notifications. subscribe("sql.active_record", new) end
class ExplainSubscriber # :nodoc: def start(name, id, payload) # unused end def finish(name, id, payload) if queries = Thread.current[:queries] unless ignore_payload?(payload) queries << payload.values_at(:sql, :binds) end end end ActiveSupport::Notifications. subscribe("sql.active_record", new) end
class ExplainSubscriber # :nodoc: def start(name, id, payload) # unused end def finish(name, id, payload) if queries = Thread.current[:queries] unless ignore_payload?(payload) queries << payload.values_at(:sql, :binds) end end end ActiveSupport::Notifications. subscribe("sql.active_record", new) end
# config/routes.rb MyApp::Application.routes.draw do concerns :commentable do resources :comments end resources :messages, :forwards, :uploads, :documents, :todos, :concerns => :commentable end
# config/routes.rb MyApp::Application.routes.draw do concerns :commentable do resources :comments end resources :messages, :forwards, :uploads, :documents, :todos, :concerns => :commentable end
# config/routes.rb MyApp::Application.routes.draw do concerns :commentable do resources :comments end resources :messages, :forwards, :uploads, :documents, :todos, :concerns => :commentable end
# config/routes.rb MyApp::Application.routes.draw do concerns :commentable do resources :comments end resources :messages, :forwards, :uploads, :documents, :todos, :concerns => :commentable end
class PeopleController < ApplicationController def create person = Person.create(params[:person]) respond_with person end end class Person < ActiveRecord::Base attr_accessible :name, :age end Rails 3
class PeopleController < ApplicationController def create person = Person.create(params[:person]) respond_with person end end class Person < ActiveRecord::Base attr_accessible :name, :age end Rails 3
class PeopleController < ApplicationController def create person = Person.create(params[:person]) respond_with person end end class Person < ActiveRecord::Base attr_accessible :name, :age end Rails 3
class PeopleController < ApplicationController def create person = Person.create(params[:person]) respond_with person end end class Person < ActiveRecord::Base attr_accessible :name, :age end Rails 3
class Person include ActiveRecord::Model end class PeopleController < ApplicationController def create person = Person.create(params[:person]) # BOOM!!!! respond_with person end end Rails 4
class Person include ActiveRecord::Model end class PeopleController < ApplicationController def create person = Person.create(params[:person]) # BOOM!!!! respond_with person end end Rails 4
class Person include ActiveRecord::Model end class PeopleController < ApplicationController def create person = Person.create(params[:person]) # BOOM!!!! respond_with person end end Rails 4
class Person include ActiveRecord::Model end class PeopleController < ApplicationController def create person = Person.create(params[:person]) # BOOM!!!! respond_with person end end Rails 4
class PeopleController < ApplicationController def update person = Person.find(params[:id]) person.update_attributes(person_params) respond_with person end private def person_params params.require(:person).permit(:name, :age) end end Rails 4
class PeopleController < ApplicationController def update person = Person.find(params[:id]) person.update_attributes(person_params) respond_with person end private def person_params params.require(:person).permit(:name, :age) end end Rails 4
class PeopleController < ApplicationController def update person = Person.find(params[:id]) person.update_attributes(person_params) respond_with person end private def person_params params.require(:person).permit(:name, :age) end end Rails 4
class PeopleController < ApplicationController def update person = Person.find(params[:id]) person.update_attributes(person_params) respond_with person end private def person_params params.require(:person).permit(:name, :age) end end Rails 4
class PeopleController < ApplicationController def update person = Person.find(params[:id]) person.update_attributes(person_params) respond_with person end private def person_params params.require(:person).permit(:name, :age) end end Rails 4
ActionController::Live class MyController < ActionController::Base def index 100.times { response.stream.write "hello world\n" } response.stream.close end end
ActionController::Live class MyController < ActionController::Base include ActionController::Live def index 100.times { response.stream.write "hello world\n" } response.stream.close end end
ActionController::Live class MyController < ActionController::Base include ActionController::Live def index 100.times { response.stream.write "hello world\n" } response.stream.close end end
ActionController::Live class MyController < ActionController::Base include ActionController::Live def index 100.times { response.stream.write "hello world\n" } response.stream.close end end