如何在Rails中使用自定义格式路由重定向?

时间:2012-09-17 05:23:27

标签: ruby routes ruby-on-rails-3.2

我正在制作一个简单的应用,要求我在更新操作后重定向到show动作。

我有这条路线用于表演。

match '/user/:fullname' => 'items#show'

这给了我这个控制器。

@user = User.find_by_fullname(params[:fullname])

然而,在用户的更新方法之后,

def update
  if @user.update_attributes(params[:user])
    format.html { redirect_to @user } # Don't need to pass parameters here.
  else
    format.html { render action: 'edit' }
  end
end

它将我重定向到show action的原始格式:

sampleapp.dev/users/1

如何使用我在routes.rb中指定的格式重定向到显示操作,该格式是全名?

sampleapp.dev/users/johndoe

1 个答案:

答案 0 :(得分:2)

将此行更改为:

match '/user/:fullname' => 'items#show', :as => :custom_show_item

然后将您的重定向更改为:

redirect_to custom_show_item_path(:fullname => @user.fullname)