【发布时间】:2019-09-02 05:52:18
【问题描述】:
undefined local variable or method `requestuser_path' for #<#<Class:0x007f92de073e10>:0x007f92e191a020>
我不知道为什么会出现这个错误,即使我路由到所需的控制器并且这里的视图也没有问题。
# routes.rb
resources :users do
member do
get :following, :followers
end
end
resources :sessions, only: [:new, :create, :destroy]
resources :microposts, only: [:create, :destroy]
resources :relationships, only: [:create, :destroy]
#resources :requests, only: [:create]
root to: 'static_pages#home'
match '/signup', to: 'users#new'
match '/signin', to: 'sessions#new'
match '/signout', to: 'sessions#destroy', via: :delete
match '/help', to: 'static_pages#help'
match '/about', to: 'static_pages#about'
match '/request', to: 'users#requestuser'
命名路线:
<% if signed_in? %>
<li><%= link_to "Requests", requestuser_path %></li>
<% end %>
用户控制器:
def requestuser
@title = "Requests"
@user = User.find(params[:id])
@users = @user.followed_users.paginate(page: params[:page])
end
我认为命名路线中存在错误,因为我是 Rails 新手。我不知道错误的原因是什么。命名路由是预定义的或者它是如何工作的。
我需要学习更多关于 Rails 的主题,谁能告诉我在初学者阶段之后哪个是最好的学习网站。
【问题讨论】:
-
Rails 的版本是多少?
-
你没有在任何地方定义
requestuser命名路由,所以难怪你会出错。 -
如果您不确定存在哪些路由或它们的命名方式,可以在控制台中使用
rails routes。 -
试试这个:- match '/request', to: 'users#requestuser', via: [:get, :post], as: :requestuser, 你的代码将按原样工作,无需任何更改,只需在您的路线中添加 as: :requestuser。
标签: ruby-on-rails ruby routes