Feb 09 2008
Third Online.rb
Pada online.rb yang ke tiga ini, kami melanjutkan project yang sebelumnya. Kalo pertemuan minggu lalu cuma posting berita tentu saja berbeda dengan yang semalam, kami menambahkan untuk menampilkan data yang telah di entrykan dengan menggunakan paging. Juga ada penambahan live-search (pake ajax) kalo mas aziz bilang. Dengan adanya tambahan fasilitas ini, tentu saja kita perlu mengubah beberapa script yang pernah kita buat sebelumnya. Yang pertama adalah penambahan method pada controller berita, dengan menggunakan generate ulang controller berita.
[root@ditto berita]# ./script/generate controller berita index view
exists app/controllers/
exists app/helpers/
exists app/views/berita
exists test/functional/
overwrite app/controllers/berita_controller.rb? [Ynaqd] n
skip app/controllers/berita_controller.rb
identical test/functional/berita_controller_test.rb
identical app/helpers/berita_helper.rb
identical app/views/berita/index.rhtml
create app/views/berita/view.rhtml
[root@ditto berita]#
Command generate diatas diperlukan untuk create file view.rhtml dan penambahan method pada berita_controller.rb yang perubahannya bisa kita lihat seperti di bawah :
class BeritaController < ApplicationController
def index
redirect_to :action => “new”
enddef new
enddef view
condition = “judul LIKE ‘%#{params[:query]}%’”
@total = Berita.count(:conditions => condition)
@pages, @record = paginate(:beritas, :conditions => condition, :per_page => 10)
enddef proses_insert
if request.post?
@masuk=Berita.new(params[:masuk])
if @masuk.save
flash[:notice] = “udah masuk”
redirect_to :action => “new”
else
flash[:notice] = “nggak masuk”
render :action => ‘new’
end
end
endend
Berikut beberapa penjelasan dari script di atas :
- condition = “judul LIKE ‘%#{params[:query]}%’”
condition adalah sebuah variabel yang menunjukkan kondisi yang dijalankan ketika query select berjalan (jika di mysql kita mengenalnya sebagai => where judul like ‘%params[:query]%’) - @total = Berita.count(:conditions => condition)
@total adalah jumlah row dari hasil query - @pages, @record = paginate(:beritas, :conditions => condition, :per_page => 10)
@record berfungsi untuk menghitung jumlah row hasil query dengan batas maksimal 10 record, sedangkan @pages diperoleh dari jumlah seluruh record setelah dibagi dengan 10 dan kemudian di tambah 1
pertemuan semalem unik banget, karena ada saat-saat di mana kami dari tim online di haruskan buat 1 project untuk posting berita. Nah, yang jadi tukang ketik semalem orangnya juga unik dari Jogja lagi
,
dan tentu saja kerja keras kami nggak sia-sia. Dalam waktu 30 menit project rails versi 1.2.3 untuk buat posting berita aja udah kelar (itu belum dikurangi 20 menit yang di pake untuk ‘guyon ngalor-ngidulnya’)
.












