我发生以下情况,这是我的Usercontroller
class UserController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to user_session_path
else
redirect_to new_user_session_path
end
end
def show
@user = User.find(params[:id])
#redirect_to @user
end
end
在我的routes.rb中我有以下内容:
Estaciones::Application.routes.draw do
root :to => "static_pages#home"
match '/contact', :to=>'static_pages#contact'
match '/about', :to=>'static_pages#about'
devise_for :user
resources :user do
#resources :car
end
当我在浏览器上运行时,我得到了这个:
Routing Error
No route matches {:action=>"show", :controller=>"user"}
Try running rake routes for more information on available routes.
我不知道为什么会这样?
答案 0 :(得分:2)
您需要将User
对象或至少用户ID传递到您正在创建要点击的链接的link_to
方法。尝试类似<%= link_to user.name, user %>
还要确保您的控制器已正确命名,例如UsersController
(复数)。
答案 1 :(得分:1)
重命名文件:
'user_controller.rb'
=&gt; 'users_controller.rb'
和常数在顶部:
UserController
=&gt; UsersController
文件名必须与常量匹配,约定是模型为单数,控制器为复数(与表匹配)。
并尝试访问
/users/1