0

我正在向用户展示他们创建的资产列表。它们可以是不同的类,并且每个类都有一个编辑按钮。

根据类是什么,编写一种将用户带到正确的编辑表单的方法的最佳方法是什么?

我在想这样的事情:

def edit_asset(class, id)
  if class == 'Photo'
    redirect_to edit_photo_url(id)
  elsif class == 'Audio'
    redirect_to edit_audio_url(id)
  elsif ...
    ...
  end
end

有一个更好的方法吗?这种方法应该去哪里?谢谢!

编辑

我忘了提到这些类可以是类或子类。

4

3 回答 3

2

您实际上可以这样做link_to 'Edit', [:edit, @object],假设@object在您的路线文件中列为资源。

于 2013-08-20T05:09:35.237 回答
0

在 rails 中使用 polymorphic_url 怎么样?你可以搜索它的api。

redirect_to polymorphic_url(yourclassname.constantize.find(yourid), action: 'edit')
于 2013-08-20T05:09:54.667 回答
0

你可以这样做:

def edit_asset(class, id)
    redirect_to send("edit_#{class.lowercase}_url", id) 
end
于 2013-08-20T05:14:41.373 回答