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  [ 13 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 14 Nov 2005, 22:24 
Offline
Obfuscator
Benutzeravatar

Registriert: 23 Okt 2005, 13:38
Beiträge: 571
Wohnort: Bern (CH)
Hallo alle

Ich habe folgendes in einer View versucht:



1
2
3
<%= session[:user]
? link_to ('Logout', :controller
=
> 'user', :action => 'logout')
: link_to('Login', :controller => 'user', :action => 'login') %>


Leider kriegen ich Fehlermeldungen:



1
2
3
4
5
6
7
compile error
(erb):34: syntax error
? link_to ('Logout', :controller => 'user', :action => 'logout')
^
(erb):35: syntax error
: link_to('Login', :controller => 'user', :action => 'login') ).to_s); _erbout.concat " -\n"
^


Kann ich das obige Konstrukt "bool ? ... : ..." nicht benützen in Ruby? Oder habe ich etwas falsch gemacht?

Danke und Grüsse
Josh

PS: Sorry, dass ich grade das Forum zuspamme mit Newbie-Fragen, aber ich mache gerade meine ersten unabhängigen Schritte mit Ruby und Rails... :roll:

_________________
www.josh.ch - Personal Web
www.incense.ch - Web development (to come)
www.ayom.com - Professionelles deutschsprachiges Webmaster Portal

"Eine Uhr, die stehen bleibt, zeigt 2x täglich die korrekte Uhrzeit an. Das ist besser als eine Uhr, die falsch geht." :-)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 14 Nov 2005, 23:24 
Offline
Geselle

Registriert: 05 Mai 2005, 14:15
Beiträge: 107
wie wärs mit "if else" mal zur Abwechslung.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 14 Nov 2005, 23:52 
Offline
Obfuscator
Benutzeravatar

Registriert: 23 Okt 2005, 13:38
Beiträge: 571
Wohnort: Bern (CH)
oracle2025 hat geschrieben:
wie wärs mit "if else" mal zur Abwechslung.


Glaub mir, diese höchst exotische Kontrollstruktur kenne ich! :P

Aber ging es nicht mal darum, dass Ruby alles möglichst einfach und kurz machen soll? Würde mich doch glatt wundern, wenn die bewährte Kontrollstruktur "bool ? ... : ..." nicht unterstützt würde...?

_________________
www.josh.ch - Personal Web
www.incense.ch - Web development (to come)
www.ayom.com - Professionelles deutschsprachiges Webmaster Portal

"Eine Uhr, die stehen bleibt, zeigt 2x täglich die korrekte Uhrzeit an. Das ist besser als eine Uhr, die falsch geht." :-)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 15 Nov 2005, 00:23 
Offline
Böser Admin 2
Benutzeravatar

Registriert: 17 Mär 2004, 17:03
Beiträge: 2544
Wohnort: Berlin
1. kein whitespace vor klammern :)
2. wenn du willst, dass Ruby am zeilenende weiterliest, musst du den operator (? oder : ) ans ende der zeile schreiben.
3. if-then-else ist keine kontrollstruktur ;) es ist eine expression:


1
2
3
4
5
<%= if session[:user]
link_to('Logout', :controller => 'user', :action => 'logout')
else
link_to('Login', :controller => 'user', :action => 'login')
end %>
ist das nicht toll? :D

_________________
Ruby-Mine | (almost) murphy.de | rubychan.de


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 15 Nov 2005, 03:30 
Offline
Geselle
Benutzeravatar

Registriert: 29 Mär 2005, 19:03
Beiträge: 198
murphy hat geschrieben:
2. wenn du willst, dass Ruby am zeilenende weiterliest, musst du den operator (? oder : ) ans ende der zeile schreiben.


Alternativ geht auch das exlizite 'Diese Zeile geht noch weiter' mit \



1
2
p 23 \
+ 42

_________________
Every OS sucks!


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 15 Nov 2005, 10:55 
Offline
Obfuscator
Benutzeravatar

Registriert: 23 Okt 2005, 13:38
Beiträge: 571
Wohnort: Bern (CH)


1
2
3
<%= session[:user] \
? link_to ('Logout', :controller =
> 'user', :action => 'logout') \
: link_to('Login', :controller => 'user', :action => 'login') %>


In diesem Falle sollte obiges Beispiel funktionieren, oder? (Kann grad nicht testen...)

_________________
www.josh.ch - Personal Web
www.incense.ch - Web development (to come)
www.ayom.com - Professionelles deutschsprachiges Webmaster Portal

"Eine Uhr, die stehen bleibt, zeigt 2x täglich die korrekte Uhrzeit an. Das ist besser als eine Uhr, die falsch geht." :-)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 15 Nov 2005, 20:00 
Offline
Böser Admin 2
Benutzeravatar

Registriert: 17 Mär 2004, 17:03
Beiträge: 2544
Wohnort: Berlin
ich glaube, Fnordor meinte das nicht ganz ernst... :roll:

btw: benutz' am besten den "Rails"-scanner für deine codes. "Ruby" ist nicht für ERb-templates gedacht.

wie wär's außerdem mit sowas:

1
2
action = session[:user] ? 'logout' : 'login'
link_to action.capitalize, :controller => 'user', :action => action)
DRY!

_________________
Ruby-Mine | (almost) murphy.de | rubychan.de


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 15 Nov 2005, 20:22 
Offline
Geselle
Benutzeravatar

Registriert: 29 Mär 2005, 19:03
Beiträge: 198
murphy hat geschrieben:
ich glaube, Fnordor meinte das nicht ganz ernst... :roll:

:P Wenn der Methodenname so kurz ist wie hier ist das nicht besonders sinnvoll aber durchaus gültig.


1
2
3
4
5
p 2 \
+ 3
# auch das:
p 2 \
.+(3)

_________________
Every OS sucks!


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 16 Nov 2005, 13:59 
Offline
Obfuscator
Benutzeravatar

Registriert: 23 Okt 2005, 13:38
Beiträge: 571
Wohnort: Bern (CH)
murphy hat geschrieben:
ich glaube, Fnordor meinte das nicht ganz ernst... :roll:

btw: benutz' am besten den "Rails"-scanner für deine codes. "Ruby" ist nicht für ERb-templates gedacht.

wie wär's außerdem mit sowas:

1
2
action = session[:user] ? 'logout' : 'login'
link_to action.capitalize, :controller => 'user', :action => action)
DRY!


Was meinst du genau mit Rails-Scanner? Und bitte erklär mir den Kommentar, dass Ruby nicht für ERb-Templates gedacht ist (was IST ERb?). Danke. :-)

_________________
www.josh.ch - Personal Web
www.incense.ch - Web development (to come)
www.ayom.com - Professionelles deutschsprachiges Webmaster Portal

"Eine Uhr, die stehen bleibt, zeigt 2x täglich die korrekte Uhrzeit an. Das ist besser als eine Uhr, die falsch geht." :-)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 16 Nov 2005, 15:32 
Offline
Böser Admin 2
Benutzeravatar

Registriert: 17 Mär 2004, 17:03
Beiträge: 2544
Wohnort: Berlin
ich meinte nur die [code]-tags.

_________________
Ruby-Mine | (almost) murphy.de | rubychan.de


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 16 Nov 2005, 16:01 
Offline
Obfuscator
Benutzeravatar

Registriert: 23 Okt 2005, 13:38
Beiträge: 571
Wohnort: Bern (CH)
murphy hat geschrieben:
ich meinte nur die [code]-tags.

Hier im Forum? Hab ich sie in diesem Post vergessen?

_________________
www.josh.ch - Personal Web
www.incense.ch - Web development (to come)
www.ayom.com - Professionelles deutschsprachiges Webmaster Portal

"Eine Uhr, die stehen bleibt, zeigt 2x täglich die korrekte Uhrzeit an. Das ist besser als eine Uhr, die falsch geht." :-)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 16 Nov 2005, 16:03 
Offline
Obfuscator

Registriert: 20 Jul 2003, 22:14
Beiträge: 597
Nein, du sollst bei "Rails-Zeug" [code:=rhtml][/code] benutzen.

_________________
Please could you stop the noise I'm trying to get some rest?
From all the unborn chicken voices in my head....


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 16 Nov 2005, 16:17 
Offline
Obfuscator
Benutzeravatar

Registriert: 23 Okt 2005, 13:38
Beiträge: 571
Wohnort: Bern (CH)
bunny hat geschrieben:
Nein, du sollst bei "Rails-Zeug" [code=rhtml][/code] benutzen.

Oh Danke, klar. Wusste nicht, dass es auch code=rhtml gibt (hätt ich bloss in das Dropdown geschaut... :oops: )

_________________
www.josh.ch - Personal Web
www.incense.ch - Web development (to come)
www.ayom.com - Professionelles deutschsprachiges Webmaster Portal

"Eine Uhr, die stehen bleibt, zeigt 2x täglich die korrekte Uhrzeit an. Das ist besser als eine Uhr, die falsch geht." :-)


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

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] 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