0

私はWebアプリケーションを持っていて、ユーザーが好むスタイルシートをセッションに保存したいのですが、ユーザーがログインしないなどするまで、デフォルトでデフォルトに入力する必要があります。この目的のために、セッションを使用します(おそらく最善の解決策ではありませんが、関係ありません)、この変数を初期化できる場所が必要です。例 :

session[:user_theme] = 'default.css' 

関数でフィルタする前に毎回チェックしたくないので、一度初期化してからUI経由でのみ変更したい. それを行うためのより良い場所を見つけるのを手伝ってもらえますか?

4

1 に答える 1

1

アプリケーションコントローラーはいいところだと思います。同様のものが機能するはずです。

class ApplicationController < ActionController::Base
  before_filter :set_theme

  def set_theme
    session[:user_theme] ||= (current_user ? current_user.preferred_theme : 'default.css')
  end
end

編集

おっと、質問を読み間違えました。しかし、私はNielsに同意します。それは置くのに最適な場所です. そして ||= aperator は一度だけ初期化します。

于 2012-07-06T08:13:34.190 に答える