如何使用paper_trail gem存储创建者详细信息?

时间:2014-12-04 11:29:41

标签: ruby-on-rails validation devise paper-trail-gem

我有一个包含帖子的rails(4.1.6)博客应用。它为用户使用设计,我正在整合paper_trail gem用于版本控制。

在与paper_trail集成之前,每个Post都有一个belongs_to:user,其中填充了create:@post = Post.new(user: current_user)顶部的current_user。但是,由于paper_trail存储了项目的创建者,我想使用@ post.originator来访问创建者。

在此博客应用中,只有已登录的用户才能创建帖子。在我的验证器中,我需要检查@ post.originator是否存在,但在验证我的帖子时,发起者是空白的(可能是因为paper_trail不保存纸质跟踪数据,直到在数据库中创建帖子)。

所以,当我创建一个帖子并且验证器运行时,使用创建器代替,我得到一个错误,因为没有创建者,所以无法创建帖子。

我看到的选项是:

  1. 验证user_signed_in?在控制器操作中,验证模型中的创建者(用户/创建者)
  2. 在我的所有模型中创建一个冗余用户字段,以存储帖子的创建者,并将其用于验证
  3. 同时执行1和2
  4. 以某种方式(如何?)使paper_trail提供模型的创建者并在验证中使用
  5. 我怀疑理想的方法是#3或至少#1或#2,但我想检查是否有任何方法可以实现#4。

    由于 阿南德

0 个答案:

没有答案
相关问题