我想动态设置
的网址路径 - application_path = @object.class.name.underscore + "_path"
= link_to "<input type='button' value='Cancel' class ='bigbutton go_back'/>".html_safe, application_path(@application)
但我一直在
undefined method `application_path' for #<#<Class:0x00000103d11d80>:0x00000103d04a68>
关于如何实现此行为的任何想法
答案 0 :(得分:5)
在一般情况下,您可以使用Object#send来调用基于符号的方法(您可以使用to_sym
从字符串中获取该符号):
send(application_path.to_sym, @application)
来自文档:
发送(符号[,args ...])→obj
调用symbol标识的方法,并将指定的参数传递给它。
但是在这种情况下,因为你的动态字符串足够简单,Rails有一个内置的方法来执行此操作,url_for:
url_for(@application)
文档示例:
<%= url_for(@workshop) %> # calls @workshop.to_param which by default returns the id # => /workshops/5
注意:这是假设您的@application
是路径与模型名称匹配的模型对象。在您的代码中,似乎有两个实例变量@object
和@application
,但您尚未完全解释它们,因此您可能需要修改上述内容以传入@object
而不是@application
。
答案 1 :(得分:0)
方法url_for
完全符合您的要求。
url_for(@application)