Mat*_*iby 1 ruby ruby-on-rails polymorphic-associations ruby-on-rails-3
我想动态设置一个url路径
- application_path = @object.class.name.underscore + "_path"
= link_to "<input type='button' value='Cancel' class ='bigbutton go_back'/>".html_safe, application_path(@application)
Run Code Online (Sandbox Code Playgroud)
但我一直在
undefined method `application_path' for #<#<Class:0x00000103d11d80>:0x00000103d04a68>
Run Code Online (Sandbox Code Playgroud)
关于如何实现这种行为的任何想法
在一般情况下,您可以使用Object#send来调用基于符号的方法(可以从字符串中获取to_sym):
send(application_path.to_sym, @application)
Run Code Online (Sandbox Code Playgroud)
来自文档:
发送(符号[,args ...])→obj
调用由symbol标识的方法,并将指定的任何参数传递给它.
但在这种情况下,因为你的动态字符串足够简单,Rails有一个内置的方法来做到这一点,url_for:
url_for(@application)
Run Code Online (Sandbox Code Playgroud)
来自文档的示例:
Run Code Online (Sandbox Code Playgroud)<%= url_for(@workshop) %> # calls @workshop.to_param which by default returns the id # => /workshops/5
注意:这假设您@application是一个模型对象,其中路径与模型名称匹配.在你的代码似乎有两个实例变量,@object和@application,但是你有没有充分的解释,所以你可能需要修改上述通过在@object代替@application.
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |