【发布时间】:2012-02-20 10:05:51
【问题描述】:
我希望从一个字符串创建一个命名路由并将一个对象传递给它
我正在使用本地“资源”渲染部分
即。 render :partial => "listing", :locals => {:resource => @resource}
在 _listing.html.haml 我使用 self.send 方法
self.send("#{resource.class.to_s.downcase}_path()")
这工作得很好,并创建了名为路由的资源 IE。文章路径()
但是这个路由需要一个在路由中传递的对象 IE。 article_path(文章)
我正在尝试这个
self.send("#{resource.class.to_s.downcase}_path("+resource+")")
并得到错误 无法将文章转换为字符串
有什么建议吗?
【问题讨论】:
-
经过大量修改后,我发现答案很简单。解决方法是让它以逗号分隔 _listing.html.haml - resource_path = "#{resource.class.to_s.downcase}_path" = link_to resource.title, send(resource_path, resource) 希望这可以帮助任何挣扎于相同问题的人
标签: ruby-on-rails string methods routes