web-dev-qa-db-fra.com

Passer des paramètres à la vue erb

J'essaie de passer des paramètres à une vue erb en utilisant Ruby et Sinatra.

Par exemple, je peux faire:

get '/hello/:name' do
  "Hello #{params[:name]}!"
end

Comment passer :name à la vue?

get '/hello/:name' do
  erb :hello
end

Et comment lire les paramètres dans view/hello.erb?

Merci!

39
Fábio Perez

passez simplement les: locaux à erb () dans vos itinéraires:

get '/hello/:name' do
    erb :hello, :locals => {:name => params[:name]}
end

et ensuite il suffit de l'utiliser dans les vues/hello.erb:

Hello <%= name %>

(testé sur sinatra 1.2.6)

75
Pavel Veller

Je ne sais pas si c'est la meilleure façon, mais cela a fonctionné:

get '/hello/:name' do
  @name = params[:name]
  erb :hello
end

Ensuite, je peux accéder à :name in hello.erb en utilisant la variable @name

17
Fábio Perez