【发布时间】:2018-02-05 09:20:17
【问题描述】:
我有一个控制器操作,它使用print.html.erb 模板呈现页面的可打印版本。控制器代码为:
def print
@title = 'Print - Drill'
render :show, layout: 'print', locals: { back_pth: drill_path(@drill) }
end
在print.html.erb 中有一行:
<%= link_to 'Back', back_pth, class: 'print_link' %>
但这会产生错误:
ActionView::Template::Error:
undefined local variable or method `back_pth' for #<#<Class:0x007fd6004e1230>:0x007fd5f7da57d0>
打印模板被许多不同的控制器操作调用,那么我该如何解决这个问题?此代码在 rails 5.0.6 中有效。
【问题讨论】:
-
print.html.erb 是布局?
-
你试过
render :show, back_pth: drill_path(@drill), layout: 'print'吗? -
想知道什么是
back_pth,辅助方法? -
7urkm3n,它不是助手,它是渲染的局部变量。
-
Akovtunov,你的建议不起作用,只是抛出和异常。如果您在下面看到 FaraPantankar 的答案,它看起来像是 5.1.6 中的一个错误
标签: ruby-on-rails ruby-on-rails-5.1