Передача параметров в представление erb - PullRequest
39 голосов
/ 18 июля 2011

Я пытаюсь передать параметры в представление erb, используя Ruby и Sinatra.

Например, я могу сделать:

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

Как передать :name на просмотр?

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

А как мне прочитать параметры внутри view / hello.erb?

Спасибо!

Ответы [ 3 ]

75 голосов
/ 19 июля 2011

просто передайте: locals в erb () в ваших маршрутах:

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

, а затем просто используйте его в views / hello.erb:

Hello <%= name %>

(проверенона синатре 1.2.6)

17 голосов
/ 18 июля 2011

Не уверен, что это лучший способ, но он работал:

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

Затем я могу получить доступ к :name в hello.erb с помощью переменной @name

0 голосов
/ 18 июля 2011
get '/hello/:name' do
  "Hello #{params[:name]}!"
end

Вы не можете сделать это в маршрутах.

Вы хотите установить параметры в контроллере.

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] %>
...