On 1/7/2010 1:27 AM, Nugroho Herucahyono wrote: > > not necessarily a magic. > > method2 tersebut muncul karena rails membaca atribut yang dimiliki oleh > tabel 'products' di database. > > jika kita membaca lognya, akan kita temukan query > SHOW FIELDS FROM `products` > yang digunakan activerecord untuk mengetahui atribut2 apa saja yang > dimiliki oleh model Product. > > sebagai contoh, jika pada tabel `products` tersebut ditemukan kolom > `title`, > maka activerecord akan mendefinisikan method `title=` dan `title` sebagai > instance method Product (kalau di java, getter dan setter nya) > > "trik" semacam ini sangat umum dan natural pada bahasa dinamis > semacam ruby, namun akan sulit diimplementasikan pada bahasa > statis seperti java. > > keuntungan dari trik ini tentu saja memudahkan developer karena > tidak perlu melakukan banyak konfigurasi yang membosankan > dengan memberikan suatu konvensi yang masuk akal. >
Setuju. itu memang hal yang sangat baru buat saya. ternyata memang kosep metaprogramming di Ruby yang memungkinkan hal tersebut dapat dilakukan. Thanks All, Regard jasoet jasoet.wordpress.com www.twitter.com/jasoet www.fb.com/jasoet > 2010/1/6 Deny Prasetyo <[email protected] <mailto:jasoet%40gmail.com>> > > > > > > > ada beberapa hal yang secara konsep agak membingungkan saya ketika > > develop rails. > > Ketika menjalankan command generate "scaffold" oleh rails akan dibuatkan > > beberapa file sesuai dengan parameter yang dimasukkan dan ketika > > dijalankan ternyata jalan MULUS dan tanpa hambatan. nah pertanyaannya: > > - Kalau di Java. konsep MVC selalu melibatkan POJO (Plain Old Java > > Object) yang berupa sebuah kelas Java yang memiliki variable2 sesuai > > dengan mapping pada table. Contoh product memiliki variable string > > title, string description dll. Nah yang mengherankan di Rails saya > > menemukan kelas product.rb tapi tidak menemukan sebuah variable member > > sama sekali > > > > class Product < ActiveRecord::Base > > end > > > > sedangkan pada kode bagian lain saya menemukan > > > > <% @products.each do |product| %> > > <tr> > > <td><%=h product.title %></td> > > <td><%=h product.description %></td> > > <td><%=h product.image_url %></td> > > <td><%= link_to 'Show', product %></td> > > <td><%= link_to 'Edit', edit_product_path(product) %></td> > > <td><%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method > > => :delete %></td> > > </tr> > > <% end %> > > > > nah darimana muncul product.title, product.description dll sedangkan > > variable2 tersebut tidak pernah didefinisikan pada kelas Product. > > it's a kind of magic, but in every magic has a trick behind it. > > Ada yang bisa menjelaskan.. > > > > salam > > jasoet > > > > > > > > > > [Non-text portions of this message have been removed] > > [Non-text portions of this message have been removed]

