Rails 3:新行动路线出现问题

时间:2011-06-20 09:24:08

标签: ruby-on-rails-3 routes

我遇到有关rails 3路线的问题。

我想添加一个名为“gestion_etudiant”的新动作,其中包含一个新视图“gestion_etudiant.html.erb”。

我的索引页面上有这样的链接

<%= link_to "Administration", {:controller => "users", :action => "gestion_etudiant"} %>

我也试试这个:

<%= link_to "Administration", "/users/gestion_etudiant" %>

在我的控制器中:

def gestion_etudiant
  @users = User.find(:all)
end

但是当我点击链接时,我总是有这个错误:

ActiveRecord::RecordNotFound in UsersController#show
Couldn't find User with ID=gestion_etudiant

我在路线文件中有这个:

resources :users

我还尝试添加:

match "users/gestion_etudiant", :to => "users#gestion_etudiant"

resources :users, :only => [:gestion_etudiant]

但我无法访问我的网页“gestion_etudiant.html.erb”。任何人都可以提出原因吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

# router:

resources :users do
  get :gestion_etudiant, :on => :collection
end

# view:

link_to "Administration", gestion_etudiant_users_path

# Controller

def gestion_etudiant
  @users = User.all # Don't use find with :all as it will be deprecated in rails 3.1
end

答案 1 :(得分:1)

在您的路线中,请尝试:

resources :users do
  collection do
    get 'gestion_etudiant'
  end
end

您可以通过运行rake routes

来检查应用中的路线