2010-04-02 6 views
8

J'ai donc un serveur web que je l'ai construit en utilisant sinatra, dont la viande va comme ceci:Erb avec Sinatra en Ruby

set :variable,"value" 
get '/' do 
    erb :index 
end 

Et, bien sûr, le modèle dans views/index.erb qui ressemble à ceci:

<html> 
<!-- etc --> 
    <ul> 
    <% my_array.each do |thing| %> 
    <%="Something: #{thing}, variable from sinatra: #{settings.variable}"%> 
    <% end %> 
    </ul> 
</html> 

Si vous essayez exécuter du code comme celui-ci, vous remarquerez que vous ne pouvez pas accéder à la variable de paramètres de l'intérieur sinatra de modèles de erb. Des idées comment je peux y parvenir tout en gardant sa simplicité?

Merci d'avance!

+0

J'ai posé cette question pour haml, peut-être la réponse vous aidera dans erb: http://stackoverflow.com/questions/2129387/how-do-i-get-an-array-of-check-boxes- in-haml – mmr

+0

Je suppose que ces paramètres sont disponibles dans le contrôleur? Si vous voulez qu'ils soient disponibles dans la vue, vous devrez les passer. –

+1

Ma réponse était erronée. La méthode des paramètres doit être disponible à partir de la vue. Le code que vous avez posté fonctionne très bien pour moi. – mckeed

Répondre

2

j'utilisais une ancienne version de Sinatra - mis à jour à la version 1.0 et il fonctionne très bien :)

Merci à tous!

0

J'ai eu un problème similaire et la résolution était de s'assurer que toutes les choses set :x, "y" se sont produites dans la déclaration de classe (de ma sous-classe Sinatra::Base) en dehors de la méthode initialize.