2010-02-09 4 views

Répondre

3

Tomas répondu correctement à votre question, mais une façon de faire ce que je pense que vous êtes un sens à faire (sortie plusieurs lignes), vous pourrait utiliser:

get '/' do 
    output =<<EOS 
Hello 
World 
EOS 
    output 
end 
4

-moi si je me trompe, mais je crois en rubis clair, la dernière ligne évalué est ce qui est retourné.

12

Cela n'a rien à voir avec sinatra lui-même. Il utilise juste la valeur de retour du bloc et dans ruby ​​la valeur de retour est la dernière expression évaluée, qui dans votre cas est "Monde". Cela pourrait fonctionner pour vous:

Dans ce cas, vous ajoutez autant de valeurs de chaîne à r que vous voulez et la dernière expression retourneraient la chaîne complète « HelloWorld ».

+4

Néanmoins, l'utilisation de + génère à chaque fois un nouvel objet chaîne. Essayez d'utiliser << à la place. – Mereghost

1

Vous pouvez utiliser un saut de ligne ombles pour séparer les lignes ..

get '/' do 
"Hello\nWorld" 
end 
1

Ne confondez pas votre contrôleur avec votre vue.

Qu'est-ce que vous cherchez probablement est la suivante:

get '/' do 
    haml :hello_world 
end 

Et puis dans views/hello_world.haml:

Hello 
World 
0

Je suis d'accord avec Matt.

Si vous le souhaitez, vous pouvez également utiliser cette méthode avec un fichier.

get '/' do 
    erb :hello_world 
end 

__END__

@@ hello_world
bonjour
monde

Je viens d'utiliser mon contrôleur met à l'intérieur pour obtenir une mise au point imprimé à STDOUT.