如何在Rails用户控制器中创建仪表板链接?

时间:2016-12-11 21:59:32

标签: ruby controller routes config ruby-on-rails-5

我正在使用Rails 5.当我的用户登录时,我想将'/ users / 4'操作替换为通用的'/ dashboard'主页链接。我还希望删除用户在浏览器中输入'/ users / ##'的功能,而只允许他们访问'/ dashboard'。我该怎么做呢?目前,在我的config / routes.rb中我有

post_save

在我的users_controller.rb文件中我有

  get '/dashboard', to: 'users#show'
  resources :users

但是目前当我在浏览器中访问“/ dashboard”时,我收到了错误

找不到具有' id' =

的用户

如何设置路线以禁用show动作,但允许/ dashboard成功导航到上面的操作?

1 个答案:

答案 0 :(得分:1)

我喜欢做的事情是这样的

  get '/dashboard' => 'users#show', as: :dashboard

现在在你的观点上你可以做到

link_to 'Dashboard', dashboard_path(current_user)

在控制器中你可以做到

  def show
    params[:id] == current_user.id unless params[:id]
    @user = User.find(params[:id])
    @user_subscriptions = UserSubscription.find_active_subscriptions_by_user(@user)
  end