Ошибка маршрутизации — метод пользовательского контроллера (добавление пользовательских маршрутов в маршруты ресурсов)

Я хочу добавить ссылку в список друзей, но получаю сообщение об ошибке маршрутизации

No route matches {:action=>"friend_list", :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]

связь

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

end match 'users/:id/friend_list' => 'users#friend_list', через: [:get] root 'home#front'


person Alaa Othman    schedule 14.06.2016    source источник


Ответы (1)


вместо блока-члена используйте блок сбора, подобный этому

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"%>
person uzaif    schedule 14.06.2016
comment
с какой ошибкой вы столкнулись, можете ли вы дать мне сообщение об ошибке, что у вас есть? - person uzaif; 14.06.2016
comment
Маршрут не соответствует {:action=›friend_list, :controller=›users_controller} - person Alaa Othman; 14.06.2016
comment
вместо users_controller используйте только users в link_to - person uzaif; 14.06.2016
comment
мне нужно изменить ответ? - person uzaif; 14.06.2016