Halo Semua,

barusan ketemu ilham, cuman saya nggak tahu seberapa berbahaya. Mungkin para
pakar ruby disini bisa bilangin.
Jadi "hack" ini bisa ditaruh di application.rb atau dimana saja yang diload
duluan.

class NilClass
  def method_missing method_id, *args
    nil
  end
end

kalau tanpa code diatas contohnya :

a={}
=> nil
a[:user]
=> nil
a[:user][:id]
NoMethodError: undefined method `[]' for nil:NilClass
        from (irb):3


nah, kalau ada code diatas, jadinya :

a={}
=> nil
a[:user]
=> nil
a[:user][:id]
=> nil

dengan "Hack" diatas, kamu nggak perlu ngecek if session[:user] &&
session[:user][:id] .. bisa diterobos langsung if session[:user][:id] .. :-)

cuman warning sekali lagi. kalau ada code itu, object yang nil bisa dibilang
nggak keliatan lagi, semuanya berjalan dengan baik. Jadi kalau ada bug
mungkin lebih susah debugnya. Saya juga nggak tahu apa ada effectnya dengan
code-code lain (terutama rails code).

Semoga membantu,


kusno mudiarto




>
> >> -----Original Message-----
> >> From: [email protected] <id-ruby%40yahoogroups.com> [mailto:
> [email protected] <id-ruby%40yahoogroups.com>] On
> >> Behalf Of
> >> Aditya Agustyana
> >> Sent: 29 June 2007 14:16
> >> To: [email protected] <id-ruby%40yahoogroups.com>
> >> Subject: [id-ruby] gmn supaya efisien
> >>
> >>
> >>
> >> aku punya kode, di view
> >>
> >> <% if session[:user] %>
> >> <% if session[:user][:id].to_i==params[:id].to_i%>
> >> <%= link_to 'Edit'.t, :controller => 'albums', :action =>
> >> 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
> >> <% end %>
> >> <% end %>
> >>
> >> itu sebetulnya udah jalan, cuma penasaran gmn caranya spy bisa efisien
> >> dengan memakai satu IF nggak 2 IF ?
> >>
> >> asalnya aku coba kayak gini aja
> >>
> >> <% if session[:user][:id].to_i==params[:id].to_i%>
> >> <%= link_to 'Edit'.t, :controller => 'albums', :action =>
> >> 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
> >> <% end %>
> >>
> >> tapi kode kayak gitu akan menyebabkan error manakala session[:user]
> >> nya nil
> >>
> >> nah teman2 ada yg punya solusi gak gmn spy IF-nya cuma satu ajah ?
> >>
> >> makasih sebelumnya
> >
> >
> >
> .
>
> 
>


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

Kirim email ke