ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 01 Aug 2014, 10:13 
Offline
Nuby

Registriert: 17 Jul 2012, 17:54
Beiträge: 7
Hallo!

Ich möchte nicht nur (per Ajax) mit Ruby HTML/Templates (parametrisiert) rendern, sondern möchte/muss das auch mit JavaScript (CoffeeScript) tun.
Also konkret: Ich möchte in meinem CoffeeScript-Code etwa einen Aufruf der Form 'render(html_filename, parameters...)' ausführen und dabei HTML-Dateien aus einem app-Unterordner meines Projektes auswählen, so wie man es sonst in Ruby mit .erb-Dateien ('render'...) macht.

Meine Frage ist daher nun:

Geht das irgendwie mit RoR-Bordmitteln bzw. ist hier eine JS/CoffeeScript-Template-Engine inside?

Oder sollte ich eine externe Template-Engine wie EJS nutzen oder gibt es bei RoR eine andere, empfehlenswertere externe Engine, die ich nutzen sollte?

Vielen Dank für eure Hinweise im Voraus, refalo.

_________________
Ruby 2.0.0 (i386-mingw32)
Rails 4.1.0
Webrick 1.3.1
NetBeans IDE 8.0
Java 8, Update 5, 64 Bit (8.0.50)
Windows 7 (64 Bit)


Nach oben
 Profil  
 
BeitragVerfasst: 01 Aug 2014, 11:01 
Offline
Interpreter

Registriert: 10 Dez 2007, 17:37
Beiträge: 1906
Rails benutzt Sprockets. Sprockets unterstützt Templating mit EJS und ECO.
Schaus dir am besten mal an.

_________________
Grüße
Jack


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: CoffeeScript , Templates, eco
BeitragVerfasst: 03 Aug 2014, 20:42 
Offline
Nuby

Registriert: 17 Jul 2012, 17:54
Beiträge: 7
Hallo!

Wenn ich versuche, eco zum Rendern zu benutzen, kriege ich (auch nach "Abspecken" meines Projekts) von der Firefox-Konsole die Fehlermeldung



ReferenceError: JST is not defined


Der entsprechende, aus meiner (abgespeckten) application.html.erb generierte JavaScript-Code (==> Quelltextanzeige im Browser!), der diese Fehlermeldung schmeißt, lautet:


1
2
3
4
5
6
7
<script>
//<![CDATA[

console.log(JST['templates/test']());

//]]>

</script>


In der application.html.erb steht:


1
2
3
<%= javascript_tag do %>
console.log(JST['templates/test']());
<% end %>


Ich habe zuvor einen Unterordner app/assets/javascripts/templates hingefügt, dort meine (Test-)eco-Datei hineingetan. Dateiname: test.jst.eco

Davor habe ich in meinem Gemfile eine Zeile 'gem eco' hingefügt und 'bundle install' durchgeführt.
'Gem list' lieferte dann zusätzlich die Zeilen:
eco (1.0.0)
eco-source (1.1.0.rc.1)

Meine application.js sieht (noch) so aus:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require jquery.ui.datepicker
//= require_tree .


Der Tipp, am Ende dieser Datei die Zeile
//= require templates/test
hinzufügen, war auch nicht erfolgreich.

Benutzt noch jemand eco? Weiß jemand, was ich übersehen habe?

vg refalo

_________________
Ruby 2.0.0 (i386-mingw32)
Rails 4.1.0
Webrick 1.3.1
NetBeans IDE 8.0
Java 8, Update 5, 64 Bit (8.0.50)
Windows 7 (64 Bit)


Zuletzt geändert von refalo am 04 Aug 2014, 20:46, insgesamt 2-mal geändert.

Nach oben
 Profil  
 
BeitragVerfasst: 04 Aug 2014, 12:37 
Offline
Interpreter

Registriert: 10 Dez 2007, 17:37
Beiträge: 1906
Das require oder require_tree musst du auf jeden Fall einfügen. Hast du den Server vielleicht nicht neu gestartet? In der Website sollte im development Mode templates/test.js mit drinnen stehen, als includete JS-Datei.

_________________
Grüße
Jack


Nach oben
 Profil  
 
BeitragVerfasst: 04 Aug 2014, 20:45 
Offline
Nuby

Registriert: 17 Jul 2012, 17:54
Beiträge: 7
Hallo slowjack2k!

Vielen Dank: Mit hinzugefügtem



<%= javascript_include_tag 'templates/test' %>

funzt es! :D

Nun bleibt noch der "INDENT"-Fehler bei (For-)Loops im Template mit RoR unter Windows. Siehe z.B. hier:

http://stackoverflow.com/questions/8102799/eco-error-message-unexpected-indent-in-windows

oder hier:

https://github.com/sstephenson/eco/issues/29

Der Vorschlag, node.js zu installieren, hat bei mir (unter Windows 7, 64 Bit) leider nicht funktioniert.
Ich hab' auch nochmal geschaut, ob Node in der Env-Variablen 'PATH' eingefügt wurde, was der Fall ist.

Aber dieses Problem habe ich nun so gelöst/umgangen, dass ich die For-Schleife außerhalb des ECO-Templates (mit CoffeeScript) laufen lasse, d.h. das Template rendert nur einen Teilstring, die FOR-Schleife außen rum verkettet also die Teilstrings zum Gesamt-HTML-String.

Damit kann ich (erst mal) leben, falls nicht doch noch der Bugfix kommt... :wink:

Grüße, refalo.

_________________
Ruby 2.0.0 (i386-mingw32)
Rails 4.1.0
Webrick 1.3.1
NetBeans IDE 8.0
Java 8, Update 5, 64 Bit (8.0.50)
Windows 7 (64 Bit)


Nach oben
 Profil  
 
BeitragVerfasst: 05 Aug 2014, 08:47 
Offline
Interpreter

Registriert: 10 Dez 2007, 17:37
Beiträge: 1906
Ruby und Windows. Also wenn's geht würde ich das vermeiden. Die wenigsten Gem's werden auch unter Windows getestet.
Installier dir nach Möglichkeit ne Linux VM und lass deinen Code darauf laufen.

_________________
Grüße
Jack


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron