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可以覆盖的方法调用

列表.rb

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

这将使路径从/:id, 变为/:own_key

注意:这只会更改参数的值,但不会更改参数的名称。

示例:如果您想访问show 操作的own_key值,则不会有. 您可以通过 with 访问该值,但不能通过 withfoo/lists/fooparams[:own_key]own_keyparams[:id]params[:own_key]

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