0

我有一个应用程序设置,其中用户有一个个人资料页面,显示他们发布到网站的所有音乐评论。我在用户控制器中创建了第二个页面,该页面将具有相同的信息,除了排序为仅显示特定年份的评论。(在这种情况下,页面名称是 tens2011)我想在主显示页面上放置一个 link_to 以访问 2011 页面,但我在路由方面遇到了问题。

我的控制器:

class UsersController < ApplicationController
  def show
    @user = User.find(params[:id])
    @pins = @user.pins.page(params[:page]).per_page(20)
  end

  def tens2011
    @user = User.find(params[:id])
    @pins = @user.pins.page(params[:page]).per_page(20)
  end
end

我的路线文件:

devise_for :users
match 'users/:id' => 'users#show', as: :user

get 'users/tens2011/:id' => 'users#tens2011'

我知道我的路由错误,但我不知道如何让链接成为 /users/tens2011/username

对这个新手的任何帮助将不胜感激!

4

1 回答 1

0

我邀请您阅读指南以了解带有轨道的路线的详细信息:http: //guides.rubyonrails.org/routing.html

路线.rb:

devise_for :users

resources :users, only: [:show, :tens2011] do
  member do 
   get :show
   get :tens2011
  end
end

在您看来:

link_to "2011", tens2011_user_path(@user)

为了帮助您,您可以通过以下方式检查您的路线:

rake routes

理解路由规则的关键是成员资源和集合资源之间的区别:http: //guides.rubyonrails.org/routing.html#adding-more-restful-actions

于 2013-05-05T14:47:51.510 回答