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/
2008/9/11 Adinda Praditya <[EMAIL PROTECTED]>
> 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]<ariekusumaatmaja%40gmail.com>
> >
>
> > 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]
>
>
>
--
blog : http://adityakircon.blogsome.com
ym : adit.prawirasoft
skype : adit_skype
i continue to fight, i continue to FIGHT (O2 - Orange Range)
[Non-text portions of this message have been removed]