Rails:从类名和ID生成URL

时间:2013-09-24 16:43:15

标签: ruby-on-rails url-for

所以,我有一个情况,我将有一个大数组,其中包括对像这样的对象的引用:

array=[['Vendor',1],['Comment',2]]

我真的希望能够创建一个指向此数组中对象的链接。在我看来,因为我知道类名和id我应该能够生成链接,但到目前为止,我还没有想出如何在不实例化对象的情况下做到这一点。

我知道我能做到:

array.each do |i|
  = link_to i[0].constantize.find(i[1])
end

......但这需要很多开销。有关如何使用类名作为字符串和ID构建链接的任何建议吗?

2 个答案:

答案 0 :(得分:0)

您可以使用变形并动态计算路径助手:

array.each do |i|
  = link_to 'show', send( "#{i[0].underscore}_path", i[1] )
end

但如果你有嵌套或命名空间的资源,这将无效。

答案 1 :(得分:0)

所以,我最后只是放弃了链接助手并手动构建它:

[nil,array[0].downcase.pluralize,array[1]].join("/")

可能不是最优雅或最强大的解决方案,但它涵盖了我需要的案例。