我想知道是否有一种方法可以在创建时从模型发回数据。在我的应用程序中,我有一个模型,它在创建时生成密钥,然后在数据库中对它们进行哈希处理。我想获取密钥的未散列形式并将其发送回用户,并允许他们仅查看一次并让他们将其保存在其他地方。我尝试从模型内部设置一个 Flash 消息,但它不起作用。
问问题
107 次
2 回答
1
我能看到的唯一方法是:
- after_initialize 您将密钥附加到附加
attr_accessor
(我们称之为unhashed_key
) - 添加
before_validation on: :create
这将采取unhashed_key
,散列并分配给hashed_key
- 保存时只
hashed_key
进入 db 并且unhashed_key
仍然可以读取 - 您
unhashed_key
通过 flash 或 session 进行下一个请求(我认为 flash 不是最好的方法,也许使用 session)
于 2013-07-21T21:23:08.090 回答
1
attr_accessor
您可以像常规 ruby 类一样将非持久字段添加到我的使用模型中。ActiveRecord 不会接受这些。因此,您只需添加一个字段并将其放在那里,它们将在该对象的整个生命周期中存在(或直到被清除)。只是不要做一个reload
.
于 2013-07-21T22:12:21.920 回答