Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用paper_trail gem存储创建者详细信息?_Ruby On Rails_Validation_Devise_Paper Trail Gem - Fatal编程技术网

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

Ruby on rails 如何使用paper_trail gem存储创建者详细信息?,ruby-on-rails,validation,devise,paper-trail-gem,Ruby On Rails,Validation,Devise,Paper Trail Gem,我有一个rails 4.1.6博客应用程序,其中包含帖子。它使用Desive for User,我正在集成gem进行版本控制 在与paper_trail集成之前,每个帖子都有一个“属于”:user,在create:@Post=Post.newuser:current_user顶部填充了当前用户。但是,由于paper_trail存储项目的创建者,因此我想使用@post.originator来访问创建者 在此博客应用程序中,只有登录用户才能创建帖子。在我的验证器中,我需要检查@post.origin

我有一个rails 4.1.6博客应用程序,其中包含帖子。它使用Desive for User,我正在集成gem进行版本控制

在与paper_trail集成之前,每个帖子都有一个“属于”:user,在create:@Post=Post.newuser:current_user顶部填充了当前用户。但是,由于paper_trail存储项目的创建者,因此我想使用@post.originator来访问创建者

在此博客应用程序中,只有登录用户才能创建帖子。在我的验证器中,我需要检查@post.originator是否存在,但在验证我的帖子时,发起者是空白的,这可能是因为在数据库中创建帖子之前,纸质痕迹不会保存纸质痕迹数据

因此,当我创建了一个帖子,并且验证程序运行时,使用了originator,我得到了一个错误,该帖子无法创建,因为没有originator

我看到的选择是:

验证用户是否已登录?在控制器操作中,不验证模型中的创建者用户/发起人 在我的所有模型中创建一个冗余用户字段来存储帖子的创建者,并使用该字段进行验证 同时做1和2 不知怎么回事?提供模型的发起人,并在验证中使用 我怀疑理想的方法是3或至少1或2,但我想检查是否有任何方法可以实现4

谢谢 阿南德