Rails:多类方法

时间:2013-08-20 05:01:42

标签: ruby-on-rails ruby-on-rails-3

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

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

这就是我在想的事情:

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

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

修改

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

3 个答案:

答案 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