あなたが持っていると言う:
get '/' do
haml :index
end
get '/form' do
haml :form
end
post '/form' do
@message = params[:message]
redirect to ('/') --- how to pass @message here?
end
@messageインスタンス変数を"/"アクションでも使用できるようにしたい(渡したい)ので、hamlビューで表示できます。セッション、フラッシュ、@@ class_variable、またはdbの永続性を使用せずにこれを行うにはどうすればよいですか?
メソッド間で値を渡す作業をしているように、単純に値を渡したいのです。
セッションCookieを使用したくないのは、ユーザーがセッションCookieをオフにできる可能性があるためです。また、すべてのコードに公開されるクラス変数であることが好きではありません。また、データベースのオーバーヘッドをかける必要もありません。
ありがとう
編集:
これは、レールでこれに対処する非常に簡単な方法を説明する別の質問です
以下は、私がフォーラムから収集したトピックに関する詳細です。これは、Railsで機能しますが、私の経験では、Sinatraでは機能しません(ただし、何か間違ったことをした可能性があるため、チェックしてください)。
action1の最後にaction2にリダイレクトする場合は、リダイレクトの最後に値を追加するだけです。
my_var = <some logic>
redirect_to :action => 'action2', :my_var => my_var
同じスレッドで、別のユーザーが次のことを提案します。
def action1
redirect_to :action => 'action2', :value => params[:current_varaible]
end
def action2
puts params[:value].inspect
end
ソース:http ://www.ruby-forum.com/topic/134953
このようなものはシナトラで動作しますか?ありがとう