1

さまざまな.erbファイルに基づくHTMLファイルをレンダリングするWebプロジェクトがあります。各.erbファイルはCookieの内容などの特定の情報を取得する必要があるため、これを行うための最善の方法がわかりません。

現在、私はこの概念を使用しています。

  • 以下を使用してレンダリングされるすべての.erbファイルを含むディレクトリがあります。

    ERB.new(template).result

  • レンダリングされたHTMLは、メインの.erbテンプレートに返されます。このテンプレートは、次を使用してsinatraによって再度レンダリングされます。

    erb:main

  • 結果はかなり良いですが、.erbがアクセスできないため、セッションベースのCookieのコンテンツを含める機会がありません。

私はかなり確信しています、sinatraフレームワークはこれを行うためのより良い方法を提供します。良い方法は...

require 'sinatra'
enable :sessions

get "/" do
content1 = erb :template1, :locals => { :cookie => session[:cookie] }
content2 = erb :template2, :locals => { :cookie => session[:cookie] }
erb :mainTemplate, :locals => { :content => [content1, content2] }
end

...しかし、残念ながらそれはそれほど簡単には機能しません:(

誰かもっと良いアイデアがありますか?

4

1 に答える 1

1

これが私が私のためにしたことです:

get '/Login' do verbose = params['verbose']
    cTest = MyTests.new("envo")
    result = cTest.login()

    if verbose == 'true'
        erb :newResultPage, :locals => {:result => result}
    elsif verbose == 'false'
        erb :resultPage, :locals => {:result => result}
    end
end

基本的に、私は条件文を使用して、使用するページを決定します。これはパラメータに基づいています。返品結果、またはその他の好きな条件を使用することもできます。

于 2013-03-01T22:41:04.403 に答える