【问题标题】:Routing Error - Custom Contoller Method (Adding Custom routes in resource routes)路由错误 - 自定义控制器方法(在资源路由中添加自定义路由)
【发布时间】:2016-06-14 03:08:07
【问题描述】:

我想添加好友列表的链接,但出现路由错误

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]

链接

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

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

【问题讨论】:

    标签: ruby-on-rails custom-routes


    【解决方案1】:

    像这样使用集合块代替成员块

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

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

    在link_中使用这个

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

    【讨论】:

    • 你遇到什么错误可以给我错误信息吗?
    • 没有路由匹配 {:action=>"friend_list", :controller=>"users_controller"}
    • 在 link_to 中仅使用 users 而不是 users_controller
    • 我需要修改答案吗?
    猜你喜欢
    • 2011-01-17
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 2011-11-24
    • 1970-01-01
    • 2012-09-15
    相关资源
    最近更新 更多