Ben Johnson wrote:
--------------------------
Question 1
--------------------------> I am dealing with a database that holds products and it has a datetime
> field called "active_at". so I have the following for active_at:
>
> <%= f.datetime_select :active_at %>
>
> It gives me 5 different params:
>
> params[:product][:active_at(1i)]
> params[:product][:active_at(2i)]
> params[:product][:active_at(3i)]
> params[:product][:active_at(4i)]
> params[:product][:active_at(5i)]
>
> How do I convert this into a Time object?
Hi Ben
Internally Rails/Activerecord does lot of smart datatype
conversion/transformations
if you see 1i..5i it has a naming convention, it automatically gets
converted to time object
@active_at = params[:product][:active_at]
same way when you query from db the timestamp is converted to a Time
object
--------------------------
Question 2
--------------------------> What if I have another field called "is_active" and its just a
boolean.
> If it''s set to false then active_at gets set to nil. Is there any
easier
> way than just:
> if params[:client][:is_active] == "1"
> (1..5).each {|num|
params[:product].delete("active_at(#{num}i)")}
> params[:product][:active_at] = nil
> end
you can implement that logic in model instead of controller
you can hook your logic into rails callbacks
http://rubyonrails.org/api/classes/ActiveRecord/Callbacks.html
def before_save
active_at = nil if is_active.nil? || is_active <= 0
end
regards
A.Senthil Nayagam
http://senthilnayagam.com
--
Posted via http://www.ruby-forum.com/.