嘿伙计们我正在使用Rails 5.我试图让我的用户编辑信息,密码等但是当我去这条路线时。
http://0.0.0.0:3000/users/edit/1
我得到的错误是 没有路线匹配[GET]" / users / edit / 1"
我有一个ID为1的用户,我已经在我的rails控制台中检查了验证。
我有一个编辑模板,控制器中的编辑控制器和编辑方法,但它只是不起作用。我究竟做错了什么?欢迎大家帮忙,谢谢!
路线
Rails.application.routes.draw do
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
root 'pages#home'
get 'pages/tierlist', to: 'pages#tierlist'
resources :articles
get 'signup', to: 'users#new'
resource :users, except:[:new]
end
USERSCONTROLLER
class UsersController <ApplicationController
def new
@user = User.new
end
def create
@user = User.create(user_params)
if @user.save
flash[:success] = "Welcome to the OP-OR-Nah Community #{@user.username}"
redirect_to articles_path
else
render 'new'
end
end
def edit
@user = User.find(params[:id])
end
private
def user_params
params.require(:user).permit(:username, :email, :password)
end
end
edit.html.erb
<h1>Edit your info</h1>
当我耙路线时,这就是我回来的原因
rake routes |grep edit
edit_article GET /articles/:id/edit(.:format) articles#edit
edit_users GET /users/edit(.:format) users#edit
答案 0 :(得分:1)
您的文件中有一个打破路线的拼写错误。
应该是
resources :users, except: [:new]
该路线通常应该是
"/users/:id/edit"
当你运行rake:routes。
答案 1 :(得分:0)
编辑的默认网址为pluralize_model_name/id/edit
,因此users/1/edit
。无论如何,你写了resource
而不是resources
所以我认为你没有这条路线。 resource
是一种生成类似
GET /user/new
GET /user
GET /user/edit
PATCH/PUT /user
DELETE /user
POST /user