【问题标题】:Getting "Missing :controller key on routes definition, please check your routes." when trying to redirect获取“缺少:路线定义上的控制器键,请检查您的路线。”尝试重定向时
【发布时间】:2017-05-01 06:17:44
【问题描述】:

我使用的是 Rails 5。我在我的 config/routes.rb 文件中有这个,这样如果用户已经登录并且访问了根 URL,我可以将他们重定向到他们的仪表板……

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

root :to => "/dashboard", constraints: lambda { |user| user.user_signed_in? } 

但是,我收到一条错误消息,“路线定义中缺少 :controller 键,请检查您的路线。”就行了

root :to => "/dashboard", constraints: lambda { |user| user.user_signed_in? } 

为什么“/dashboard”没有被识别,我该如何解决这个问题?

【问题讨论】:

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


    【解决方案1】:

    您的根路径应定义为:root to: 'users#show'。使用to helper 时需要指定controller#action。

    或者,您可以使用get 'dashboard', as: :root,但这将指向dashboard#index

    【讨论】:

    • 这是唯一的方法吗?我更喜欢放置一个 URL,因为 URL 指向的底层控制器操作可能会改变,因此我只需要在一个地方进行更改。
    • 我认为您正在寻找的东西是不可能的。查看我的编辑,但它不会指向 users#show
    • 有趣。好吧,如果不可能,我会回来接受,但我会先做一些挖掘,因为看起来我不会是第一个提出类似要求的人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多