0

MichaelHartのRubyonRailsチュートリアルで新しいユーザーをサインアップするときに発生するエラーで立ち往生しています。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'

どちらが正しいパスかわかりません。乾杯

4

2 に答える 2

0

コードに奇妙なものが貼り付けられたようです。どの行が問題を引き起こしているかについては正しいですが、それはリダイレクトステートメントではありません。その前にあるのは、この奇妙な文字列です。


于 2012-10-06T03:34:27.563 に答える
0

app/models/user.rbを確認してください。

予想外に聞こえるかもしれませんが、モデルにエラーがある場合 (オブジェクト メソッドの検証など)、適切なプロパティでオブジェクトを作成できず、コードの実行時にメソッドなしエラーが発生します。
if @foo.save

補足- このトピックは Rails 3.2 に関連するものであり、Rails 4 では関連性が低い可能性があるため、おそらくすぐに終了する必要があります。

于 2013-05-06T07:55:22.827 に答える