Tips dan trik Active Record pada Ruby On Rails 4


Artikel ini akan membahas tips dan trik dan kegunaan beberapa fitur active record pada Rails 4 , 1 year ago

pluck

Pluck dapat digunakan untuk mendapatkan hanya beberapa field yang diinginkan

Post.pluck(:title, :description)

Pada contoh diatas, perintah tersebut akan mengembalikan hanya title dan description saja, atau dengan bahasa SQL:

# => SELECT posts.title, posts.description FROM posts

find_by

Fitur ini cukup terkenal, mungkin anda sudah tau. Find By digunakan untuk memfilter, atau dengan kata lain WHERE:

Post.find_by(:title => 'Test')

Adalah sama dengan

Post.where(:title => 'Test')

to_sql

Fitur ini berguna buat debug atau kalo pingin tau SQL dari sebuah active record

Post.join(:categories).to_sql

Perintah diatas akan menghasilkan SQL string

# => SELECT * FROM posts INNER JOIN categories

find_each

Fitur Find Each berguna untuk iterasi records hasil dari sebuah query

Post.where(:published => true).find_each do |post|    puts #{post.title}end

first_or_create

Fitur ini akan mencari record dengan filter tertentu dan mengembalikan hasilnya, namu jika record nya tidak ditemukan, dia akan meng-create record baru

Post.where(:title => 'Title').first_or_create do |post|    post.description = 'Description'end

index_by

Fitur ini akan memberi key ke array yang akan merubahnya menjadi hash

Post.all.index_by(&:title)

Perintah diatas akan mengembalikan hasil

# => { "Title 1" => #post ...>, "Title 2" => #post ..., ... }

Time Range

Sebenernya ini bagian dari where, fitur ini bisa digunakan untuk memfilter records dengan time frame tertentu.Misalkan kita pingin cari Post dari kemarin sampan sekarang

Post.where(:created_at => 1.day.ago..Time.now)

Atau dari 5 hari yang lalu

Post.where(:created_at => 5.days.ago..Time.now)

Sekian dulu, nanti update kalo dapet lagi..

Ruby on Rails