Re: Pertanyaan lanjutan: Jawaban = Re: [id-ruby] Bagaimana membedakan resource yang nested dan tidak di controller?

2008-09-15 Terurut Topik Adinda Praditya
Bagusan mana dengan plugin resources_controller ?

Thanks,

Dida


2008/9/11 adit [EMAIL PROTECTED]

   kenapa nggak install plugin make_resourceful saja

 bisa menggunakan @current_objects sbg pengganti @speechess

 jd nggak perlu pake if then else buat penanganan yg berbeda antara

 GET /speechess/ dan GET /bundles/1/speeches/



[Non-text portions of this message have been removed]



Re: Pertanyaan lanjutan: Jawaban = Re: [id-ruby] Bagaimana membedakan resource yang nested dan tidak di controller?

2008-09-11 Terurut Topik Arie Kusuma Atmaja
2008/9/11 Adinda Praditya [EMAIL PROTECTED]:

 def index
if params[:bundle_id]
  @bundle = Bundle.find(params[:bundle_id])

  unless @bundle.nil?
@speeches = @bundle.speeches
  else
flash[:notice] = 'No Bundle found'
redirect_to bundle_path
  end

kalau rest ya musti di sendiri ini.

lha itu kalau @bundle.nil dia akan raise ActiveRecord::RecordNotFound
mbok ya ditangkap itu exceptionnya, kok malah jadi pakai if/unless then else
gitu.

 @speeches = @bundle.speeches

@bundle itu jangan lupa Anda pakai include ya, kalo gak di include speeches nya
suram plus plus nanti. sudah gitu query puanjang, semua field dipanggil -_-

 Ampun d, udah coba macem2, dimana salahku? Dosa apa gw? : )

 Thanks,

 Dida

desain aplikasi Anda mengerikan. Kalau sekarang saya tidak sedang
sakit demam batuk
bisa bisa sekarang juga saya terbang tak datangi ke Singapura sambil
bawa durian

http://ariekeren.blogdetik.com/ketentuan warna warni foto-fotonya


Re: Pertanyaan lanjutan: Jawaban = Re: [id-ruby] Bagaimana membedakan resource yang nested dan tidak di controller?

2008-09-11 Terurut Topik Arie Kusuma Atmaja
Adinda Praditya wrote:

 Iya, saya sudah rescue  ActiveRecord::RecordNotFound tapi tidak
 terselamatkan dari error itu. Makanya saya pake unless

ah masuk script/console coba, disana jalankan Bundle.find(000999) 
nongolnya apa? *jadi penasaran masak gak AR Exception*

 maksudnya pake include gimana?

Bundle.find(params[:bundle_id), :select = name, :include = :speeches)

utk select field tertentu utk tabel speeches itu PR yg harus Anda 
selesaikan sendiri itu mestinya. *manualnya dibuka* 
http://www.railsbrain.com

 Maklum d, masih sangat2 awam. Kalo besok sembuh terbang ke Singapura ga? Ga
 usa bawa durian jg gpp d.. : )

tergantung keadaan, kalau dede'ane ga dateng dari Australia ya di 
Indonesia, terjadi tarik menarik awal tahun depan entah akan ke 
Singapore, Bandung, atau Bali.

 Thanks,
 
 Dida

*kaburr tidurr*

be agile XOR break; http://ariekeren.blogdetik.com/ketentuan


Re: Pertanyaan lanjutan: Jawaban = Re: [id-ruby] Bagaimana membedakan resource yang nested dan tidak di controller?

2008-09-11 Terurut Topik Hendy Tanata
Kalo gak mau exception bisa pake Bundle.find_by_id(params[:id]).

Tapi gak semua database aman, kalo di PostgreSQL mesti dicek dulu
params[:id] nil apa gak. Kalo pake MySQL sih hajar aja.

--
Hendy


[Non-text portions of this message have been removed]



Pertanyaan lanjutan: Jawaban = Re: [id-ruby] Bagaimana membedakan resource yang nested dan tidak di controller?

2008-09-10 Terurut Topik Adinda Praditya
Saya tidak menanyakan bagaimana routes-nya, akan tetapi bagaimana
controller-nya, yang sebenarnya sudah cukup jelas saya sebutkan:

 menangani index action untuk path yang berbeda (katakan /speeches/ dengan
 /bundles/1/speeches/ ). Mohon pencerahannya.

Dan saya sudah menemukan jawabannya yaitu:

def index
if params[:bundle_id]
  @bundle = Bundle.find(params[:bundle_id])

  unless @bundle.nil?
@speeches = @bundle.speeches
  else
flash[:notice] = 'No Bundle found'
redirect_to bundle_path
  end

else
  @speeches = Speech.find(:all)
end

respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml = @speeches }
end
  end

Sehingga kalo ada params[:bundle_id] dalam hal ini berarti menangani
/bundle/1/speeches/ maka cari bundle-nya dan lihat speeches yang dimiliki
oleh bundle itu. Jika tidak ada, maka cari @speeches dari database dan lalu
dikirim ke viewer.

Namun saya masih bermasalah menangani error saat bundle_id tidak ada dalam
database. Dari kode controller di atas, saya dapat RecordNotFound error. Ini
yang pertama.

2. Saya sudah coba find_by_id (saran dari teman) juga tidak bisa, saya dapat
Routing Error ini:

bundle_url failed to generate from {:action=show,
:controller=bundles} - you may have ambiguous routes, or you may
need to supply additional parameters for this route.  content_url has
the following required parameters: [bundles, :id] - are they all
satisfied?


3. Saya sudah coba tambahkan rescue ActiveRecord::RecordNotFound seperti
pada http://pastie.org/270189 saya dapat error NoMethodError untuk speech
object. Ok, saya paham, ini karena baris:

@speeches = @bundle.speeches

sementara @bundle-nya nil. Lalu saya tambahkan block unless @bundle.nil?
seperti kode di atas, kembali lagi saya dapat Routing Error. Penasaran
dengan routes.rb saya? Ini saya kasi secara lengkap:
http://pastie.org/270210 (padahal sudah sama dengan jawaban mas Arie)

Ampun d, udah coba macem2, dimana salahku? Dosa apa gw? : )

Thanks,

Dida



2008/8/28 Arie Kusuma Atmaja [EMAIL PROTECTED]

   Adinda Praditya wrote:

  Nah, bagaimana membedakan hal ini di SpeechController?

 mestinya anda yang tukang kodingnya yang menjawab *bagaimana membedakan*
 nya

 yg dibawah ini adalah satu solusi yg harus bundle_id ketahuan/alias bisa
 dipanggil lewat callback.

  Misalnya dalam
  menangani index action untuk path yang berbeda (katakan /speeches/ dengan
  /bundles/1/speeches/ ). Mohon pencerahannya.

 saya rephrase pertanyaannya langsung dlm bentuk path saja ya.

 GET /bundles # BundleController#index
 GET /bundles/:bundle_id/speeches # SpeechController#index

 map.resources :bundles do |bundle|
 bundle.resources :speeches
 end

 silakan reply lagi kalau ini tidak menjawab masalah anda.

 http://ariekeren.blogdetik.com
 Don't ask if you can ask, just ask!, R2D2



[Non-text portions of this message have been removed]