paper_trail 显示成员更改日志(没有针对每个错误的方法)
paper_trail show log of changes to a member (no method for each error)
我正在尝试在显示视图中显示特定成员的更改日志。成员信息在那里,版本历史记录正在运行。
我无法显示该特定成员的 versions/changes 日志。我收到此错误:
ActionView::Template::Error (undefined method `each' for #<PaperTrail::Version:0x007f55f23ee348>):
我的控制器里有这个:
# Detailed Member Profile
def show
@versions = PaperTrail::Version.find(params[:id])
@members_main = Members::Main.find(params[:id])
end
在我的展示视图中:
<div class="row">
<div class="col-md-6">
</div>
<div class="col-md-6">
<% @versions.each do |version| %>
<li>
<%= l(version.created_at, format: "%-d.%m.%Y %H:%M:%S %Z") %><br/>
Event ID: <%= version.id %><br/>
<b>Target:</b> <%= version.item_type %>
<small>(id: <%= version.item_id %>)</small>; <b>action</b> <%= version.event %>;<br/>
<div>
More info:
<pre><%= version.object %></pre>
</div>
</li>
<% end %>
</div>
</div>
型号:
class Members::Main < ActiveRecord::Base
# Add Paper Trail
has_paper_trail
end
我认为ActiveRecord的find
方法returns只有一个对象。该对象没有 each
方法。
请参阅文档 here。
特别是这一行@versions = PaperTrail::Version.find(params[:id])
。它 returns 给定 id 的对象。但是该对象没有名为 each
的方法。那是你的错误文本。
您可能期望的是它 returns 一个数组,但显然不是。
尝试将其更改为 @versions = PaperTrail::Version.find([params[:id]])
,我相信它应该有效。注意 方括号 .
我正在尝试在显示视图中显示特定成员的更改日志。成员信息在那里,版本历史记录正在运行。
我无法显示该特定成员的 versions/changes 日志。我收到此错误:
ActionView::Template::Error (undefined method `each' for #<PaperTrail::Version:0x007f55f23ee348>):
我的控制器里有这个:
# Detailed Member Profile
def show
@versions = PaperTrail::Version.find(params[:id])
@members_main = Members::Main.find(params[:id])
end
在我的展示视图中:
<div class="row">
<div class="col-md-6">
</div>
<div class="col-md-6">
<% @versions.each do |version| %>
<li>
<%= l(version.created_at, format: "%-d.%m.%Y %H:%M:%S %Z") %><br/>
Event ID: <%= version.id %><br/>
<b>Target:</b> <%= version.item_type %>
<small>(id: <%= version.item_id %>)</small>; <b>action</b> <%= version.event %>;<br/>
<div>
More info:
<pre><%= version.object %></pre>
</div>
</li>
<% end %>
</div>
</div>
型号:
class Members::Main < ActiveRecord::Base
# Add Paper Trail
has_paper_trail
end
我认为ActiveRecord的find
方法returns只有一个对象。该对象没有 each
方法。
请参阅文档 here。
特别是这一行@versions = PaperTrail::Version.find(params[:id])
。它 returns 给定 id 的对象。但是该对象没有名为 each
的方法。那是你的错误文本。
您可能期望的是它 returns 一个数组,但显然不是。
尝试将其更改为 @versions = PaperTrail::Version.find([params[:id]])
,我相信它应该有效。注意 方括号 .