作成時にモデルからデータを送り返す方法があるかどうか疑問に思っていました。私のアプリには、作成時にキーを生成し、データベースでハッシュするモデルがあります。ハッシュされていない形式のキーを取得してユーザーに送り返し、一度だけ表示して別の場所に保存できるようにしたいと考えています。モデル内からフラッシュメッセージを設定しようとしましたが、うまくいきません。
2 に答える
1
私が見ることができる唯一の方法は次のとおりです。
- after_initialize キーを追加に割り当てます
attr_accessor
(それを呼び出しましょうunhashed_key
) - を追加
before_validation on: :create
しunhashed_key
、それをハッシュして割り当てますhashed_key
- 保存
hashed_key
時にデータベースにのみ移動し、unhashed_key
引き続き読み取り可能 - 次のリクエストのためにフラッシュまたはセッションを通過
unhashed_key
します(フラッシュが最善の方法ではないと思います。おそらくセッションを使用してください)
于 2013-07-21T21:23:08.090 に答える
1
attr_accessor
通常の Ruby クラスと同じように、永続化されていないフィールドをモデルに追加できます。ActiveRecord はこれらを検出しません。したがって、フィールドを追加してそこに配置するだけで、そのオブジェクトの存続期間中 (またはクリアされるまで) 存在します。しないでくださいreload
。
于 2013-07-21T22:12:21.920 に答える