wtorek, 25 czerwca 2013

Assets on production mode

Zamień:

# Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = false

Na:

# Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = true

rake assets:clean
sudo /etc/init.d/nginx restart 

Jeśli nie działa, to:

rake assets:precompile
sudo /etc/init.d/nginx restart 

czwartek, 13 czerwca 2013

Date format - created_at

Zmiana wyświetlenia daty:
=> post.created_at
> 2013-06-13 15:09:47 UTC
=> post.created_at.strftime("%d.%m.%Y")
> 13.06.2013

Operacje na tablicy - metoda reduce

Określamy działanie wykonywane dla każdego elementu tablicy:
> [1,2,3,4].reduce(:+)
 => 10
> [1,2,3,4].reduce(:*)
 => 24
> [1,2,3,4].reduce(:-)
 => -8
> [1,2,3,4].reduce(:/)
 => 0

wtorek, 11 czerwca 2013

Git log alias

Użycie: git lg
git config --global alias.lg "log --graph 
--pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s 
%Cgreen(%cr) %C(bold blue)%Creset' --abbrev-commit --date=relative"

poniedziałek, 10 czerwca 2013

Problem z instalacją rmagick 2.13.2


An error occurred while installing rmagick (2.13.2), and Bundler cannot
continue. Make sure that `gem install rmagick -v '2.13.2'` succeeds before bundling.


Wystarczy zainstalować paczkę na Ubuntu:

sudo apt-get install libmagickwand-dev 

Jeśli nie zadziała, to spróbować:

sudo apt-get install libmagickcore-dev  
libmagickcore4-extra libgraphviz-dev libgvc5

piątek, 7 czerwca 2013

Domyślna wartość content_for

Domyślna wartość content_for:
<% if content_for?(:title) %>
  <%= yield :title %>
<% else %>
  <%= "default title" %>
<% end %>
W widoku:
<% content_for :title do %>
  <div class="title">New title</div>
<% end %>

czwartek, 6 czerwca 2013

Edycja wszystkich elementów tablicy

Operacja na wszystkich elementach tablicy:
a = [ "a", "b", "c", "d" ]
a.collect {|x| x + "!" }   #=> ["a!", "b!", "c!", "d!"]
a                          #=> ["a", "b", "c", "d"] 
Przykłady:
>> ['a', 'b', 'c'].collect{|letter| letter.capitalize}
=> ["A", "B", "C"]

W ładniejszej formie:

>> ['a', 'b', 'c'].collect(&:capitalize)
=> ["A", "B", "C"]

Pobranie z bazy danych wybranej kolumny

Pobranie z bazy danych wybranej kolumny i zwrócenie jej w postaci tablicy:
Post.pluck(:title) lub Post.pluck :title
Pobranie z bazy wybrane kolumny:
Post.select('title, content')

Restart bazy danych

Restart bazy danych:
rake db:drop && rake db:create && rake db:migrate && rake db:seed
Polecenie jako alias 'remigrate':
alias remigrate="rake db:drop && rake db:create && rake db:migrate && rake db:seed"
Aby alias był zawsze aktywny, należy go dodać do pliku ~/.bash_aliases (jeśli jest to inny plik, to jego nazwa wspomniana jest w pliku ~/.bashrc).

Aktualizacja wartości pola we wszystkich rekordach

Nadanie jednakowego tytułu wszystkim postom:
Post.update_all(title: "To jest przykład.")

Zwiększenie wartości pola w bazie danych

Zwiększenie wartości o 1:
object.increment!(:counter)
Zwiększenie wartości o daną liczbę:
object.increment!(:counter, number)