2016-11-15 5 views
2

Ich habe einige Kaffee-Skript in /assets/javascripts/transactions.coffee, die ein Textfeld (in /views/transactions/_form.html.erb) mit dem heutigen Datum in dd/mm/yy Format ausgefüllt.Nur JavaScript auf einer bestimmten Rails-Ansicht ausgeführt werden soll

$ -> 
    today = new Date 
    dd = today.getDate() 
    mm = today.getMonth() + 1 
    #January is 0! 
    yyyy = today.getFullYear() 
    if dd < 10 
     dd = '0' + dd 
    if mm < 10 
     mm = '0' + mm 
    today = dd + '/' + mm + '/' + yyyy 
    $('#transaction_date').val today 

$ -> 
    $('#transaction_date').datepicker({dateFormat: "dd/mm/yy"}) 

Derzeit dass Form in /views/transactions/new.html.erb und /views/transactions/edit.html.erb verwiesen. Das Textfeld sollte jedoch nur unter new.html.erb und nicht edit.html.erb ausgefüllt werden.

Was ist der "sauberste" Weg, dies in Rails (4.2.5) zu erreichen?

+0

Mögliche Duplikat [Beste Art und Weise Seite spezifische Javascript in Rails 3 App hinzufügen?] (http://stackoverflow.com/questions/3437585/best-way-to-add-page-specific-javascript-in-a-rails-3-app) – guiniveretoo

+0

@guiniveretoo Ich habe die Versionsnummer hinzugefügt (4.2.5). Ich hoffe, es gibt einen besseren Weg, dies zu erreichen. – Bhav

+0

gibt es 9 Antworten auf diese doppelte Frage. Hast du sie alle ausprobiert? Was qualifiziert eine neue Lösung als besser? Bearbeiten Sie Ihre Frage, um zu klären, warum diese Lösungen nicht akzeptabel sind oder warum Ihre Frage kein Duplikat ist. – guiniveretoo

Antwort

0

Vielleicht können Sie Funktionen in transactions.coffee erstellen, die Sie aus Ihrer Sicht mit einem Inline-Skript aufrufen. Zum Beispiel in transactions.coffee

this.App || (this.App = {}) 
this.App.Transactions = 
    runForNewView:() -> 
     today = new Date 
     dd = today.getDate() 
     mm = today.getMonth() + 1 
     #January is 0! 
     yyyy = today.getFullYear() 
     if dd < 10 
      dd = '0' + dd 
     if mm < 10 
      mm = '0' + mm 
     today = dd + '/' + mm + '/' + yyyy 
     $('#transaction_date').val today 

Dann zum Beispiel in der neuen Ansicht Vorlage, würden Sie gerade hinzufügen

<script text="text/javascript"> 
    $(function() { App.Transactions.runForNewView(); }); 
</script> 
Verwandte Themen