2012-10-06 95 views
0

我在迈克尔哈特的Ruby on Rails教程中注册新用户时遇到了一个错误。我是新来的铁轨,但我一直在寻找几个小时,似乎无法找到任何解决问题。我最初的想法是,这是特定于以下行:UsersController中的NoMethodError#create

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

未定义的方法` 'for#Rails.root:/ Users/mikedeverna/Documents/rails_projects/sample_app

Application Trace |框架跟踪|全面跟踪 应用程序/控制器/ users_controller.rb:18:在'创造”

这里是我的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' 

我无法找到这是正确的道路。 干杯

+1

请检查资源:用户路径通过'rake routes'.This将帮助您了解哪些路由可用于您的哪种类型的方法。请记住,创建方法将为您的post方法 –

+0

为什么用户控制器中有以下几行代码? #!/ bin/env ruby​​ #encoding:utf-8 –

回答

0

这似乎是古怪的东西被粘贴到您的代码。你说的是哪一行导致问题是正确的,但它不是重定向语句。正是这种怪异的字符串就在它前面:

 
0

检查应用程序/模型/ user.rb

它听起来可能是意想不到的,但是如果你的模型有错误(例如验证对象方法),那么在创建具有适当属性的对象时会失败,并且在运行代码时会导致无方法错误:
if @foo.save

侧面说明 - 本主题或许应该尽快关闭,因为这涉及到Rails 3.2,并且可以在滑轨4较少有关,我太新,轨道4,5有消息灵通对此的看法。

相关问题