我正在向用户展示他们创建的资产列表。它们可以是不同的类,每个类都有一个编辑按钮。
编写方法的最佳方法是什么,根据类的不同,将用户带到正确的编辑表单?
这就是我在想的事情:
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
有更好的方法吗?这种方法应该去哪里?谢谢!
修改
我忘了提到这些类可以是类或子类。
答案 0 :(得分:2)
您实际上可以link_to 'Edit', [:edit, @object]
,假设@object
被列为路线文件中的资源。
答案 1 :(得分:0)
如何在rails中使用polymorphic_url?你可以在api上搜索它。
redirect_to polymorphic_url(yourclassname.constantize.find(yourid), action: 'edit')
答案 2 :(得分:0)
你可以这样做:
def edit_asset(class, id)
redirect_to send("edit_#{class.lowercase}_url", id)
end