12. cancancanCanCanCommunity / cancancan
class Ability
include CanCan::Ability
!
def initialize(user)
if user.admin?!
can :manage, :all
elsif user.client?
can :read, :all
can :manage, Article do |article|
user.articles.include? article
end
end
end
end
13. cancancanCanCanCommunity / cancancan
class ApplicationController < ActionController::Base
rescue_from CanCan::AccessDenied do |exception|
redirect_to root_url, :alert => exception.message
end
end
24. kaminariplataformatec / devise
class UsersController < ApplicationController
def index
@users = User.all.per(params[:per]).page(params[:page])
respond_with @users
end
end
GET /users?per=25&page=1
31. Visualización de emails en el explorador
!
Los emails aparecen como popups
letter_openerryanb / letter_opener
32. letter_openerryanb / letter_opener
Preparar letter_opener en una web app
gem install letter_opener1
2 En config/environments/development.rb
config.action_mailer.delivery_method = :letter_opener
35. Ejecución asíncrona de métodos
!
Ejecución en segundo plano
!
Calendarización de tareas
delayed_jobcollective idea / delayed_job
36. delayed_jobcollective idea / delayed_job
Preparar delayed_job en una web app
gem install delayed_job_active_record
1
2
3
Si se usa Active Record:
rails generate delayed_job:active_record
gem install delayed_job_mongoid
En config/application.rb:
config.active_job.queue_adapter = :delayed_job