Clever ENUM in RAILS:
class Photo < ActiveRecord::Base
STATUSES = [STATUS_QUEUED = 'queued', STATUS_NEW = 'new', STATUS_CHANGED = 'changed', STATUS_REMOVED = 'removed', STATUS_READY = 'ready']
validates :status, inclusion: {in: STATUSES}
def change_status
self.status = Photo::STATUS_QUEUED
end
end
if defined? CalendarDateSelect
CalendarDateSelect.format = :finnish
end
class User < ActiveRecord::Base
def self.current
Thread.current[:user]
end
def self.current=(user)
Thread.current[:user] = user
end
end
# your controller
def index
@users = User.paginate( :include => :car, :page => params[:page], :per_page => 20 )
end
http://rails-bestpractices.com/posts/2010/07/25/use-caching/
Explicitly rescuing Exception will rescue even not normally recoverable errors such as SyntaxError, LoadError, and Interrupt.
.
The website is running on linode with multiple processes:
- nginx - http reverse proxy server
- puma - ruby app server
- mysql - database server
- memcached - cache server
- sphinx - full text search server
- delayed_job - background job process
<% if @post.editable_by?(current_user)) %>
<%= link_to 'Edit this post', edit_post_url(@post) %>
<% end %>
class Post < ActiveRecord::Base
def editable_by?(user)
user && (user == self.user || self.editors.include?(user))
end
end