Ruby on rails 更改轨道布线标准
在我们创建一个新条目之后,标准的重定向是每次重定向到Ruby on rails 更改轨道布线标准,ruby-on-rails,database,ruby-on-rails-3,routing,response.redirect,Ruby On Rails,Database,Ruby On Rails 3,Routing,Response.redirect,在我们创建一个新条目之后,标准的重定向是每次重定向到:id。如何将其更改为自有密钥。 我们已经设计了我们的路线 resources :lists match '/:own_key' => 'lists/show' 如果我们创建一个新条目,重定向将转到/list/:id 有没有办法将其改为重定向到自己的密钥 def create @list = List.new(params[:list]) @list = List.create!(params[:list]) respond
:id
。如何将其更改为自有密钥。
我们已经设计了我们的路线
resources :lists
match '/:own_key' => 'lists/show'
如果我们创建一个新条目,重定向将转到/list/:id
有没有办法将其改为重定向到自己的密钥
def create
@list = List.new(params[:list])
@list = List.create!(params[:list])
respond_with(@list)
end
每个模型都有一个名为
to_param
的方法,您可以覆盖该方法
list.rb
class Bar < ActiveRecord::Base
def to_param
"#{own_key}.parameterize"
end
end
如果您想重定向,那么是什么阻止您使用
redirect_to
而不是respond_with
?我们使用respond_with,因为它允许返回更多格式,如json、xml或atom。现在问题又回来了。routes.rb包含资源:列表
,这始终是:id
我们是否要覆盖所有routes手册或是否有配置选项?:id
是硬编码的。但是,您可以为response_提供一个块,在该块中覆盖html响应:{| format | format.html{redirect_to'/path'}
。其他格式将是不变的。这就是我正在寻找的。谢谢
Parameters: {"id"=>"foo"}