2017-04-07 1 views
0

J'ai une application qui doit afficher une horloge sur la page d'index. J'ai donc un contrôleur statique comme ceci:Rails affichage de l'horloge

contrôleurs/static_controller.rb:

class StaticController < ApplicationController 

    def index 
    @time = Time.now.strftime("%H:%M:%S ") 
    end 

    def get_time 
    @time = Time.now.strftime("%H:%M:%S ") 
    render partial: "date" 
    end 

end 

et je présente sur les vues/statique/index.html.erb:

<div class="time-container"> 
    <%= render partial: "date" %> 
</div> 

et ce partial views/static/_date.html.erb qui contient juste la var:

<%[email protected]%> 

J'ai utilisé JS cette fonction pour essayer de mettre à jour le temps sur les actifs/JavaScripts/static.js:

$(document).ready(function() { 
    setInterval(function() { 
     $('.time-container').load('/static/get_time'); 

    }, 1000); 
}); 

Mon routes.rb sont ceci:

Rails.application.routes.draw do 
    # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 
    root "static#index" 
    resources :static 

end 

De cette façon, l'horloge apparaît lorsque la page se charge, mais il reste toujours le même et ne met pas à jour. Est-ce que je manque quelque chose?

+0

Faites votre console javascript sur le navigateur affiche une erreur? –

+0

Oui: GET http: // localhost: 3000/static/get_time 404 (Non trouvé) –

+0

Ai-je manqué une config d'itinéraire? –

Répondre

1

Vos itinéraires ne correspondent pas au flux que vous avez créé.

Vous avez juste été chanceux que static/index a fonctionné car il est inclus dans l'état des ressources.

Prenez le:

resources :static 

et les remplacer par

get 'static/index' 
get 'static/get_time'