42 votes

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 transmettre :name à la vue ?

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

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

Merci!

78voto

Pavel Veller Points 3377

passez simplement les :locals à l'erb() dans vos routes :

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

puis utilisez-le simplement dans le fichier views/hello.erb :

 Hello <%= name %>

(testé sur sinatra 1.2.6)

18voto

Fábio Perez Points 1716

Je ne sais pas si c'est le meilleur moyen, mais cela a fonctionné:

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

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

-7voto

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

Vous ne pouvez pas le faire dans les itinéraires.

Vous souhaitez définir les paramètres dans le contrôleur.

app/controllers/some_controller.rb

 def index
    params[:name] = "Codeglot"
    params[:name] = "iPhone"    
    params[:name] = "Mac Book"      
end

app/views/index.html.erb

 <%= params[:name] %>
<%= params[:phone] %>
<%= params[:computer] %>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X