0

新しいエントリを作成した後、標準のリダイレクトは毎回:id. own_key に変更するにはどうすればよいですか。ルートを設計しました

resources :lists
match '/:own_key' => 'lists/show'

新しいエントリを作成すると、リダイレクトは /list/:id に移動します

own_key にリダイレクトするように変更する方法はありますか?

def create
  @list = List.new(params[:list])
  @list = List.create!(params[:list])
  respond_with(@list)
end
4

1 に答える 1

2

各モデルには、to_paramオーバーライドできると呼ばれるメソッドがあります

list.rb

class Bar < ActiveRecord::Base
  def to_param
    "#{own_key}.parameterize"
  end
end

これにより、パスが、から/:idに変更され/:own_keyます。

注:これにより、パラメーターの値のみが変更され、パラメーターの名前は変更されません。

例:showアクションのown_key値にアクセスする場合、はありません。で値にアクセスできますが、ではアクセスできませんfoo/lists/fooparams[:own_key]own_keyparams[:id]params[:own_key]

Parameters: {"id"=>"foo"}
于 2012-05-21T09:15:06.797 に答える