This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Everything after the '#' character is a comment | |
# Run these lines in an interactive ruby interpreter (irb) to "feel" them | |
# Maths | |
9/2 == 4 | |
9/2.0 == 4.5 # Same as 9.0/2 or 9.0/2.0 or 9.to_f/2 | |
2**8 == 256 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
STASH_NAME="$(git stash list | grep `git branch | grep \* | cut -d ' ' -f2` | head -n1 | cut -d':' -f1)" | |
if [ -n "$STASH_NAME" ] | |
then | |
echo "Last stash on this branch:" | |
git --no-pager stash show "$STASH_NAME" -p | |
echo "To keep your stash list clean, consider using one of the followings:" | |
echo "git stash pop \"$STASH_NAME\"" | |
echo "git stash drop \"$STASH_NAME\"" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Simple : | |
# params[:user][:tags] = ["tag1", "tag2"] | |
user.update!(user_params) | |
# Ou encore : | |
user.tags = ["tag1", "tag2"] | |
user.save! | |
# Beau | |
def user_params |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
add_column :users, :tags, :string, array: true, default: [] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
add_column :users, :tags, :string, array: true, null: false, default: [] | |
add_index :users, :tags, using: :gin | |
# Ceci ne fonctionnera pas : | |
User.where("users.tags @> ?", requested_tags) | |
# Faites ceci, même si requested_tags n'a qu'un item ou n'est pas un array. | |
User.where("users.tags @> ARRAY[?]", requested_tags) | |
# Si vous rencontrez cette erreur, faites ceci : |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# app/models/concerns/sortable.rb | |
module Sortable | |
extend ActiveSupport::Concern | |
included do | |
# Model.smart_sort("attribute_a,+attribute_b,-attribute_c") | |
# is equivalent to | |
# Model.order(attribute_a).order(attribute_b: :asc).order(attribute_c: :desc) | |
scope :smart_sort, -> (sort) { | |
scope = self.all |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class User < ActiveRecord::Base | |
# Only this class changed | |
has_many :posts, compose: :published | |
end | |
class Post < ActiveRecord::Base | |
belongs_to :user | |
scope :published, -> { where(status: :published) } | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class User < ActiveRecord::Base | |
has_many :posts | |
has_many :published_posts, -> { published }, class_name: "Post" | |
end | |
class Post < ActiveRecord::Base | |
belongs_to :user | |
scope :published, -> { where(status: :published) } | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class User < ActiveRecord::Base | |
has_many :posts | |
end | |
class Post < ActiveRecord::Base | |
belongs_to :user | |
end | |
# It will hit 11 times your database, that's bad! | |
User.limit(10).each do |user| |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# app/controllers/application_controller.rb | |
class ApplicationController < ActionController::Base | |
protect_from_forgery with: :exception | |
before_action :set_locale | |
private | |
def set_locale | |
if session[:locale] | |
I18n.locale = session[:locale] |
NewerOlder