[英]Using partial with paper trail
我正在尝试在/ events的显示页面中部分放置一些代码。 当我在显示页面中使用该代码时,该代码工作正常,但是当我将其提取到部分内容时,出现“无方法错误”
undefined method `event' for #<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_PaperTrail_Version:0x007f4368823a68>
版本/_version.html.erb
<% cache version do %>
<div class="feed-item">
<h4>
<%= link_to version.item.name, version.item %>
<small>
<%= version.event + "d" %> by <%= link_to User.find(version.whodunnit).username, User.find(version.whodunnit) %>
</small>
</h4>
<ul class="list-unstyled">
<% version.changeset.each do |data| %>
<li>
<strong><%= data[0].capitalize %>:</strong>
<% if data[1][0].present? %><p class="red">- <%= data[1][0] %></p><% end %>
<p class="green">+ <%= data[1][1] %></p>
</li>
<% end %>
</ul>
</div>
<% end %>
show.html.erb
<%= render :partial => '/versions/version', :object => @versions %>
事件控制器
def show
@versions = @event.versions
end
事件模型
has_paper_trail
知道我如何将我的代码放在部分而不是将其放在show视图中吗? 谢谢。
编辑:我仍然收到无方法错误
undefined method `item' for #<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_PaperTrail_Version:0x007f43688ee1a0>
events_controller.rb
before_action :set_event, only: [:show, :update, :destroy]
def set_event
@event = Event.find(params[:id])
end
您是否在@event
中定义了@event
变量? @event.versions
方法必须在实际的事件对象上调用。
例如
def show
@event = Event.find(1)
@versions = @event.versions
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.