ruby-on-rails Rails:从类名和ID生成URL

dkqlctbz  于 2023-02-26  发布在  Ruby
关注(0)|答案(2)|浏览(162)

因此,我有一个大数组,其中包含对对象的引用,如:

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

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

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

...但这会产生大量的开销。对于如何只使用类名作为字符串和ID来构建链接,有什么建议吗?

2w2cym1i

2w2cym1i1#

您可以使用变形和动态计算路径辅助对象:

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

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

clj7thdc

clj7thdc2#

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

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

可能不是最优雅或健壮的解决方案,但它涵盖了我需要的情况。

相关问题