Передача параметров в erb view
Я пытаюсь передать параметры в представление erb с помощью Ruby и Sinatra.
Например, я могу сделать:
get '/hello/:name' do
"Hello #{params[:name]}!"
end
Как передать :name
в представление?
get '/hello/:name' do
erb :hello
end
И как мне читать параметры внутри view/hello.erb?
Спасибо!
Ответы
Ответ 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] %>