【发布时间】:2012-09-27 04:51:01
【问题描述】:
我在 Michael Hart 的 Ruby on Rails 教程中注册新用户时遇到了一个错误。我是 Rails 的新手,但我一直在寻找几个小时,似乎找不到任何东西来解决这个问题。我最初的想法是它特定于以下行:
redirect_to @user
这是我的 users_controller.rb
文件#!/bin/env ruby
# encoding: utf-8
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
flash[:success] = "Welcome to the Sample App!"
 redirect_to @user
else
render 'new'
end
end
end
这是我收到的错误消息:
UsersController#create 中的 NoMethodError
#Rails.root 的未定义方法 `': /Users/mikedeverna/Documents/rails_projects/sample_app
应用程序跟踪 |框架跟踪 |全跟踪 app/controllers/users_controller.rb:18:in `create'
这是我的routes.rb 文件中的代码:
SampleApp::Application.routes.draw do
resources :users
resources :sessions, only: [:new, :create, :destroy]
root to: 'static_pages#home'
match '/signup', to: 'users#new'
match '/signin', to: 'sessions#new'
match '/signout', to: 'sessions#destroy', via: :delete
match '/help', to: 'static_pages#help'
match '/about', to: 'static_pages#about'
match '/contact', to: 'static_pages#contact'
我无法找到正确的路径。 干杯
【问题讨论】:
-
请通过
rake routes检查资源:用户路径。这将帮助您了解哪些路线适用于哪种方法。请记住,创建方法将为您发布方法 -
为什么用户控制器中有以下几行? #!/bin/env ruby # 编码:utf-8
标签: ruby-on-rails methods nomethoderror