编辑路线无匹配路由错误GET

时间:2017-04-22 21:20:39

标签: ruby-on-rails ruby ruby-on-rails-5

嘿伙计们我正在使用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

2 个答案:

答案 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