所以,我有一个情况,我将有一个大数组,其中包括对像这样的对象的引用:
array=[['Vendor',1],['Comment',2]]
我真的希望能够创建一个指向此数组中对象的链接。在我看来,因为我知道类名和id我应该能够生成链接,但到目前为止,我还没有想出如何在不实例化对象的情况下做到这一点。
我知道我能做到:
array.each do |i|
= link_to i[0].constantize.find(i[1])
end
......但这需要很多开销。有关如何使用类名作为字符串和ID构建链接的任何建议吗?
答案 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("/")
可能不是最优雅或最强大的解决方案,但它涵盖了我需要的案例。