【发布时间】:2014-09-26 19:55:12
【问题描述】:
是否可以像这样在 erb 文件中“构建”路径?路径的名称应该取决于对象的类名。正在构建的路径已存在于 routes.rb 文件中。我只想动态选择正在生成的路径的一部分,这样我就不必使用条件和重复代码。
<% custom_path = "hide_#{object.class}_path" %>
<%= link_to 'Do something', custom_path(object) %>
上面的例子不起作用,因为我不知道如何正确“使用”新路径。我想我必须通过某种“元”方式“调用”路线?就像 Ruby 中的 object.call(method)。但我不知道如何在 Rails 中做到这一点。
举例说明:假设对象的类是 Car,那么变量中的路径应该是:hide_car_path。
上面示例的错误如下所示:
undefined method `custom_path' for #<#<Class:0x00000108afac40>:0x000001091fd3a8>
【问题讨论】:
-
可以定义一个辅助方法
def custom_path(object) "hide_#{object.class}_path end" -
好建议,谢谢!
标签: ruby-on-rails ruby path erb