2012-10-06 40 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有消息靈通對此的看法。

相關問題