Re: Pertanyaan lanjutan: Jawaban = Re: [id-ruby] Bagaimana membedakan resource yang nested dan tidak di controller?
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/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?
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?
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?
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]