在Michael Hart的Ruby on 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中的NoMethodError #create
#Rails.root的未定义方法`':/ Users / mikedeverna / Documents / rails_projects / sample_app
应用程序跟踪|框架跟踪|完整追踪 app / controllers / users_controller.rb:18:在'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'
我无法找到哪条路是正确的。 干杯
答案 0 :(得分:0)
似乎有些奇怪的东西被粘贴到你的代码中。你确定哪一行导致问题你是对的,但它不是重定向语句。就在它前面就是这个奇怪的字符串:

答案 1 :(得分:0)
检查 app / models / user.rb 。
听起来可能意外,但如果模型中有错误(例如验证对象方法),那么创建具有适当属性的对象将失败,并且在运行代码时会导致无方法错误:
if @foo.save
旁注 - 这个主题可能很快就会关闭,因为这与Rails 3.2有关,在Rails 4中可能不太相关。我对Rails 4来说太新了对此的意见。