1

我想动态设置的我可以强调一个URL路径

- application_path = @object.class.name.underscore + "_path" 
    = link_to "<input type='button' value='Cancel' class ='bigbutton go_back'/>".html_safe, application_path(@application) 

的URL路径,但我不断收到

undefined method `application_path' for #<#<Class:0x00000103d11d80>:0x00000103d04a68> 

就如何实现这一行为的任何想法

回答

5

在一般情况下,可以使用Object#send来调用基于符号的方法(可以使用to_sym从字符串中获得):

send(application_path.to_sym, @application) 

从文档:

发送(符号[,ARGS ...])→OBJ

调用由符号识别的方法,传递指定的任何参数。

但在这种情况下,因为你的动态串是很简单的,Rails有一个内置的方法来做到这一点,url_for

url_for(@application) 

来自实例文档:

<%= url_for(@workshop) %> 
# calls @workshop.to_param which by default returns the id 
# => /workshops/5 

注意:这是假设您的@application是一个模型对象,其中rou te匹配型号名称。在你的代码中,似乎有两个实例变量,@object@application,但是你没有完全解释它们,所以你可能需要修改上面的代码来传递@object而不是@application

0

方法url_for完全符合您的要求。

url_for(@application) 
相关问题