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

レールで 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 に答える