2010-09-05 7 views
1

J'ai ce contrôleur:Obtenir RAILS pour retourner un dateTime dans un format spécifique?

class SchedulesController "post", :except => :index 

    def index 
    #Schedules.create(:id => -1, :deviceId => "2002", :subject => "Test 2", :scheduleTime => Time.new, :repeatEveryYear => "FALSE") 
    #@schedules = Schedules.all 
    respond_to do |format| 
     format.html # list.html.erb 
     format.json { render :json => @schedules.to_json } 
    end 
    end 

    def create 
    @schedule = Schedules.new.from_json(params[:schedule]) 
    @schedule.save 
    render :json => "success" 
    end 
end

L'annexe a un champ datetime, comment puis-je le contrôleur pour revenir cette fois formaté comme "aaaa-MM-JJ HH: mm: zzzz" (zzzz = GMT spécifique fuseau horaire)?

Merci Søren

Répondre

3

Vous pouvez spécifier les formats de date et d'heure dans les initialiseurs. Par exemple, créer le fichier config/initializers/time.rb et de mettre le code suivant:

Time::DATE_FORMATS[:schedule] = "%Y-%m-%d %H:%M:%z" 

Puis dans votre Schedule.rb:

def formatted_schedule_time 
    scheduleTime.to_s(:schedule) 
end 

Et chaque fois que vous appelez la méthode to_json sur un Planifier objet, vous devez faire:

@schedule.to_json(:methods => [:formatted_schedule_time]) 
Questions connexes