"profile"})-6ren"> "profile"})-我继承了一个旧的 Rails 应用程序,我真的在为这个错误而苦苦挣扎: ActionController::RoutingError (No route matches {:controlle-6ren">
gpt4 book ai didi

ruby-on-rails - ActionController::RoutingError(没有路由匹配 {:controller= >"users", :action= >"profile"})

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:17 25 4
gpt4 key购买 nike

我继承了一个旧的 Rails 应用程序,我真的在为这个错误而苦苦挣扎:

ActionController::RoutingError 
(No route matches {:controller=>"users", :action=>"profile"}):
app/views/layouts/application.html.erb:59:in
`_app_views_layouts_application_html_erb__105<snip>'
app/controllers/users_controller.rb:40:in `index'

只有当我以管理员身份登录时才会出现此错误,而不是以任何其他用户身份登录。

这是我的 routes.rb

Vvault::Application.routes.draw do
resources :orders

devise_for :users

resources :videos

resources :users

root :to => "users#index"

match 'users/:id/profile' => 'users#profile', :as => :user_profile
end

我认为这是来自 users_controller.rb 的相关片段:

def index
if current_user.admin?
# admin sees all users
@users = User.all

respond_to do |format|
format.html # index.html.erb
format.json { render json: @users }
end
else
redirect_to "/users/" + current_user.id.to_s() and return
end
end

我认为这是 application_html.erb 中的相关片段:

<div class="sidebar">
<% if user_signed_in? %>
<%= link_to "My account", user_profile_path, :method => :get %>
<% end %>
</div>

如果我注释掉 application_html.erb 的第三行,我可以以管理员身份登录,但显然个人资料链接不会为任何用户呈现。

感谢任何帮助。

谢谢!

最佳答案

尝试:

<%= link_to "My account", user_profile_path(current_user.id), :method => :get %>

关于ruby-on-rails - ActionController::RoutingError(没有路由匹配 {:controller= >"users", :action= >"profile"}),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com