Rails - 多个模型合二为一 table(视图)。如何根据模型创建重定向编辑?

Rails - multiple models in one table(view). How to create redirected to edit depending on the model?

我有这个问题:在项目中我组合了大部分不同的模型(例如 Person、Gallery、Article ...),以便它们的公共列表显示在 table 中的一个视图中。 现在,在 haml 中,我想为每个条目添加编辑操作:并使其重定向到适当的模型。

我想要这样的东西:

- @searches.each do |p|
  = link_to 'EDIT', edit_SOME_MODEL_path(p), class: 'a__link-btn'

所以,可以是很多型号:

= link_to 'EDIT', edit_person_path(p), class: 'a__link-btn'
= link_to 'EDIT', edit_news_article_path(p), class: 'a__link-btn'
= link_to 'EDIT', edit_order_path(p), class: 'a__link-btn'
= link_to 'EDIT', edit_news_article_path(p), class: 'a__link-btn'
= link_to 'EDIT', edit_movie_path(p), class: 'a__link-btn'

当我点击所选的一个时,我希望根据型号进行重定向,例如: http://localhost:3000/en/news_articles/2/edit 要么 http://localhost:3000/en/persons/3/edit

最佳解决方案是什么?

使用polymorphic routing helpers:

- @searches.each do |p| 
  = link_to 'EDIT', [p, :edit], class: 'a__link-btn'