web-dev-qa-db-ja.com

パラメーターをerbビューに渡す

RubyとSinatraを使用してerbビューにパラメーターを渡そうとしています。

たとえば、次のことができます。

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

:nameをビューに渡すにはどうすればよいですか?

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

そして、どのようにしてview/hello.erb内のパラメータを読むのですか?

ありがとう!

39
Fábio Perez

:localsをルートのerb()に渡すだけです:

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

そして、それをviews/hello.erbで使用するだけです:

Hello <%= name %>

(シナトラ1.2.6でテスト済み)

75
Pavel Veller

これが最善の方法かどうかはわかりませんが、うまくいきました:

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

次に、変数:nameを使用して、hello.erb@nameにアクセスできます。

17
Fábio Perez