从带有对象的字符串命名路由

时间:2012-01-27 11:56:00

标签: ruby-on-rails string methods routes

我希望从字符串创建一个命名路由并将一个对象传递给它

我使用本地“资源”

渲染部分内容

即。 render :partial => "listing", :locals => {:resource => @resource}

在_listing.html.haml里面我正在使用self.send方法

self.send("#{resource.class.to_s.downcase}_path()")

这很好用,并创建名为route的资源 即。 article_path()

但是此路线需要在路线中传递的物体 即。 article_path(物品)

我正在尝试这个

self.send("#{resource.class.to_s.downcase}_path("+resource+")")

并得到错误 无法将文章转换为字符串

有什么建议吗?

2 个答案:

答案 0 :(得分:11)

您应该传递这样的参数:

self.send("#{resource.class.to_s.downcase}_path", resource)

答案 1 :(得分:3)

您可以简化Jef的答案(您不需要使用资源),如下所示:

send("#{controller_name}_path")