路由错误 - 自定义控制器方法(在资源路由中添加自定义路由)

Routing Error - Custom Contoller Method (Adding Custom routes in resource routes)

我想将 link 添加到好友列表,但出现路由错误

No route matches {:action=>"friend_list", :controller=>"users_controller"}

users_controller

def friend_list
    @frnds =  User.find_friends(current_user)
end

路线

devise_for :users
resources :users do
member do
  get :follow
  get :unfollow
  get :show
end
match 'users/:id/friend_list' => 'users#friend_list', via: [:get]

link

<li><%= link_to "Friends",  :controller => :users_controller, :action => :friend_list%></li>

结束 匹配 'users/:id/friend_list' => 'users#friend_list',通过:[:get] 根 'home#front'

像这样使用集合块而不是成员块

resources :users do
  collection do
    get "follow"
    get "unfollow"
    get "show"
 end
end

成员块将在路由中附加 :id 而收集块将允许您在 resource 路由中添加自定义路由

在link_to中使用这个

<%=link_to "Friends", controller: "users", action: "friend_list"%>