Подтвердить что ты не робот

Передача параметров в erb view

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

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

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

Как передать :name в представление?

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

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

Спасибо!

4b9b3361

Ответ 1

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

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

а затем просто используйте его в представлениях /hello.erb:

Hello <%= name %>

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

Ответ 2

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

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

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

Ответ 3

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