0

所以,我有一种情况,我将有一个大数组,其中包含对对象的引用,例如:

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

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

我知道我可以这样做:

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

...但这是大量的开销。关于如何仅使用类名作为字符串和 ID 构建链接的任何建议?

4

2 回答 2

0

您可以使用拐点并动态计算路径助手:

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

但是,如果您有嵌套或命名空间的资源,这将不起作用。

于 2013-09-24T17:09:57.327 回答
0

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

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

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

于 2013-09-25T17:47:02.247 回答