Hmmmm gini...

before_save callback itu diexecute sebelum ActiveRecord::Base#save
bukan setelah ActiveRecord::Base.new

Saya ingin memberikan suatu nilai ke atribut model sebelum disimpan ke
database. <-- bener bgt kalo before_save dipake untuk ini

Saya udah tambahkan method pada :before_save tapi tidak
berpengaruh saat saya edit via form <-- untuk tujuan yg ini
before_save tidak bisa dipakai

Ada banyak cara untuk set default attribute value supaya bisa terlihat
di edit form
1. Set default value di database column
   change_column :table_name, :column_name, :column_type, :default =>
your_default_value_here
2. ActiveRecord::Base#after_initialize
3. ActionController#edit 
      @object = ActiveRecord::Base.find(params[:id])
      @object.[attribute_name] = "Some default value" if
@object.[attribute_name].blank? or nil? or wataver your other condition is
4. Condition checking di RHTML/RJS view file dari edit action
5. Javascript after page load untuk detect field dari form itu

Cara no 3,4,5 biasanya saya tidak pakai karena umumnya saya mau set
default value dimana-mana. Di semua controller gitu...

Cara no 1,2 ada trade off nya tergantung case anda sendiri.

Hope that helps and have fun!

--- In [email protected], "Adinda Praditya" <[EMAIL PROTECTED]> wrote:
>
> Hi All,
> 
> Saya ingin memberikan suatu nilai ke atribut model sebelum disimpan ke
> database. Saya udah tambahkan method pada :before_save tapi tidak
> berpengaruh saat saya edit via form. Ini sebagian code-nya:
> 
> before_save :set_time
> 
> private
>   def set_time
>     if created_at.blank?
>       created_at = Time.now
>     else
>       modified_at = Time.now
>     end
>   end
> 
> Mohon pencerahannya.
> 
> Dida
> 
> 
> [Non-text portions of this message have been removed]
>


Kirim email ke