0

我想知道是否有一种方法可以在创建时从模型发回数据。在我的应用程序中,我有一个模型,它在创建时生成密钥,然后在数据库中对它们进行哈希处理。我想获取密钥的未散列形式并将其发送回用户,并允许他们仅查看一次并让他们将其保存在其他地方。我尝试从模型内部设置一个 Flash 消息,但它不起作用。

4

2 回答 2

1

我能看到的唯一方法是:

  1. after_initialize 您将密钥附加到附加attr_accessor(我们称之为unhashed_key
  2. 添加before_validation on: :create这将采取unhashed_key,散列并分配给hashed_key
  3. 保存时只hashed_key进入 db 并且unhashed_key仍然可以读取
  4. unhashed_key通过 flash 或 session 进行下一个请求(我认为 flash 不是最好的方法,也许使用 session)
于 2013-07-21T21:23:08.090 回答
1

attr_accessor您可以像常规 ruby​​ 类一样将非持久字段添加到我的使用模型中。ActiveRecord 不会接受这些。因此,您只需添加一个字段并将其放在那里,它们将在该对象的整个生命周期中存在(或直到被清除)。只是不要做一个reload.

于 2013-07-21T22:12:21.920 回答