0

コントローラー項目を別のファイルに分離する良い方法を知っている人はいますか? 私は自分のコントローラーに次のものを持っています。

def admin?
    session[:password] == "password"
end

しかし、「パスワード」を別のファイルに分けて、パブリック git リポジトリから無視できるようにしたいですか?

これを行う簡単な方法はありますか?これをデータベースに保存せずに?

4

3 に答える 3

1

ENV変数を使用してみることができます。最初に環境変数を値に設定します。

export MYAPPPASSWORD=1234

次に、これを初期化子で使用します

# config/initializers/my_app_password.rb
ENV['MYAPPPASSWORD'] = `printf "%s" $MYAPPPASSWORD`

その後、あなたはただ呼び出すことができますENV['MYAPPPASSWORD']

于 2013-02-06T09:45:36.557 に答える
0

これらの設定を処理するには、グローバル定数を使用できます。たとえば、config ディレクトリに yml ファイルを定義します。

#config/password.yml
password: MyPassword

初期化子を使用して、システムの起動時に設定をロードします。何かのようなもの:

#config/initializers/load_password.rb
conf_file = File.join(Rails.root, 'config', 'password.yml')
MY_CONFIG = OpenStruct.new YAML.load_file(conf_file)

以下を使用して、プロジェクト全体でこれにアクセスします。

MY_CONFIG.password

ただし、この方法でパスワードを処理するためにこのアプローチを使用しないでください。単純な認証については、この基本認証の例を見てください

于 2013-02-06T09:44:17.163 に答える
0

パスワードをセッションに保存し、この方法で使用するのは悪い習慣ですが。それでも、このようにする特定の理由がある場合は、config ディレクトリまたは任意の場所にある yml ファイルに保存できます。config ディレクトリの下に例を示します。

/config/passwords.yml で

password: your_password_text_here_without_quotes

コントローラー/モデル/どこでもファイルをロードしてパスワードを取得します。

password = YAML.load_file("#{Rails.root}/config/passwords.yml")["password"]
于 2013-02-06T09:42:28.003 に答える