Mohon maaf sebelumnya kalo penjelasan saya berikut kurang bisa dicerna soalnya udah larut pagi, ditambah lagi hidung mamped. Klo ada kesalahan tolong dibetulin.
Untuk masalah tembak menembak pake ruby dan ajax, project jadinya udah ada disini : http://www.koders.com/info.aspx?c=ProjectInfo&pid=CCQV8EXG7T3QQKTWBN45N16AVF cuma disitu tembak menembak bintang/meteor, data yang ditembak bukan dari database tapi object2 yang dicipatakan oleh javascript dan disimpan dalam bentuk array. Dan hasil yang ditembak disimpan ke dalam database berdasarkan session usernya.(kodenya saya ambil langsung dari script yang ada di website itu), mari kita bahas sesuai dengan permasalahan kamu : CATATAN KODE BERIKUT BELUM SAYA RUNNING, JADI KALO ERROR HARAP DIPERBAIKI. 1. Kamu harus install pluginnya dulu atau gem tambahan : http://rubyforge.org/frs/download.php/29794/shooting_star-3.2.6.gem 2. Discript ini meteor/bintangnya bukan data yang disimpan didalam database tapi data2 yang diciptakan dari javascript, tabel Meteor disini menyimpan object2 yang sudah ditembak oleh user sampai waktunya habis (kamu bisa lihat pada Model Meteornya): # METEOR_CONTROLLER.RB class MeteorController < ApplicationController layout nil #<-- bisa kamu ganti pake layout kamu def strike @channel = params[:channel].split('/').map{|i| CGI.escape(i)}.join('/') if params[:event].blank? meteor = Meteor.find(params[:id]) # <-- sepertinya ini menempatkan pada object/bintang/meteor yang akan ditembak. @javascript = meteor.javascript else @javascript = %Q[setTimeout(function(){ [EMAIL PROTECTED](#{params.to_json});}, 0);] end Meteor.shooter.executed(params[:sig], params[:id]) #<<-- menunjukan meteor siap ditembak, script "shooter" ada di "Model Meteor" end ... end # METEOR.RB INI MODELNYA class Meteor < ActiveRecord::Base def self.shooter @@shooter ||= DRbObject.new_with_uri( configurations[RAILS_ENV]['shooting_star']['shooter']) end def self.shoot(channel, javascript, tag = []) meteor = Meteor.new(:javascript => javascript) returning(meteor.save) do |succeeded| #<-- stlh def shooter, lsg baca ini shooter.shoot(channel, meteor.id, tag) if succeeded end end end Gimana cara bikin semua data melayang?? Kamu download semua JS yang ada di /shooting-star/shooting-star/trunk/public/javascripts dan lihat implementasinya pada /shooting-star/shooting-star/trunk/app/views/meteor/strike.rhtml 3. Tabel Meteor dalam database di script ini hampir sama fungsinya dengan tabel sessions pada shopping cart. Ini yang saya maksud menyimpan apa yang ditembak user disimpan sementara kedalam session. Klo saya lihat sepertinya disini 80%-90% yang kamu perlukan sudah terjawab, tinggal kamu kembangkan saja. klo kamu mo ganti meteornya dengan data2 kamu yang udah kamu simpan didatabase artinya tabel meteornya dibiarkan saja, hanya saja object2 pembentuk bintangnya atau object pembentuk meteor yang melayang2 itu kamu ganti dengan memanggil data2 kamu dari database sisanya scriptnya sama. Saya kurang menangkap data yang kamu maksud tentang data yang ditembak user kemudian disimpan lagi, itu maksudnya scorenya atau apa yang sudah user tembak dikumpulkan dan disimpan kedalam tabel berdasarkan usernya. Gitu? Klo pake score berarti kamu tinggal bikin method yang bisa mengkalkulasikan hasil data yang ditembak, kalo hanya mengumpulkan data yang udah ditembak terserah kamu mo pake tabel Meteor atau tabel tambahan seperti tabel "hasil" misalnya yang isinya user_id dan data_tembak, start_time dan end_time. ini migration dari script Meteor nya : class CreateMeteors < ActiveRecord::Migration def self.up create_table :meteors do |t| t.column :javascript, :text #<<-- menyimpan apa yang sudah ditembak t.column :limit, :integer t.column :created_at, :datetime end end def self.down drop_table :meteors end end Aduh kepala saya jadi pusing hehehe.... terus terang menarik dan bisa dijadikan bahan scripsi sebenarnya. Kamu kuliah dimana, semester berapa? Dosen kamu siapa namanya? FX[Riand] --------------------------------- Looking for last minute shopping deals? Find them fast with Yahoo! Search. [Non-text portions of this message have been removed]

