所以我有一个Entry
模型,其中有一列名为created_by
,我想默认为第一个User
创建条目的人。我安装了审核,在我的Entry
模型中我有:
belongs_to :user
audited :associated_with => :user
同样在我的User
模型中,我有以下陈述:
has_many :entries
has_associated_audits
在我的条目表单中,我试图创建一个hidden_field
我试图设置created_by
为等于条目的第一次审核的关联用户的条目。但是,当我尝试加载表单视图时出现此错误:
undefined method `associated' for nil:NilClass
这是视图中的代码:
.field
= f.label :created_by
%br
= f.hidden_field :created_by, value: @entry.audits.first.associated
这是entries_controller
我@entry
在视图中设置的代码:
def new
@entry = Entry.new
authorize! :create, @entry
@project = Project.find(params[:project_id])
@entry.project_id = @project.id
authorize! :update, :read, @project
end
我意识到,直觉上,在创建新审计时调用 @entry.audits 没有多大意义,因为它尚未保存。@entry.created_by
我应该在调用控制器@entry.save
的方法后设置值吗?create
不太确定在这里采取什么最实用的方法。
谢谢,
迈克尔。