使用参数重定向路由?

时间:2019-10-17 04:17:13

标签: ruby-on-rails

当用户想要转到他的个人资料时,我想重定向到适当的资源用户。

赞:

获取“配置文件”,以:redirect(“ / users /#{current_user.id}”)

我不知道是否可能

3 个答案:

答案 0 :(得分:1)

设定路线

SELECT * 
FROM 
  car c
  LEFT JOIN countedservice cur ON ... AND cur.service_num = 1
  LEFT JOIN countedservice prev ON ... AND prev.service_num = 2

在表演动作中

match 'profile' => 'users#show', :via => :get

这将有助于创建用户的个人资料页面

答案 1 :(得分:1)

不建议将用户重定向到其个人资料页面之类的/users/#{ current_user.id }之类的URL。如果您在该端点中没有用户授权,则可能为IDOR(即,检查URL中的用户ID是否仅适用于当前用户)

话虽如此,您可以尝试@abhishek的答案来处理表演动作

答案 2 :(得分:1)

好,在确认您的意图之后,因为您已经有一个用户控制器,并且已经实现了“ users#show”,这使用户可以查看其他用户的个人资料。我想你可以这样:

  1. 路由器
  get '/profile', to:"users#profile"
  1. 在用户控制器中定义配置文件操作,这里有两种可能的实现方式(如果您已经将当前登录用户设置为current_user变量)

a)不重定向,仅使用必需的变量渲染show操作

def profile
  @user = current_user
  render :action => "show" # if your show function is only depends on @user variable
end

b)重定向

def profile
  redirect_to action: "show", id: current_user.id
end