0

私はルビーが初めてで、構文が好きです!しかし、私はこのエラーを受け取り続けます、誰かが私に理由を教えてもらえますか?また、運が悪ければ、include ActiveModel::Validationsにインクルードしようとしました。この「スタックレベルが深すぎる」

class HomeController < ApplicationController
 def index

 if params[:username]
     l = Users.new(:username => params[:username], :password => params[:password], :email => params[:email]).save
     z = Users.where(:username => params[:username]).limit(1).last
     @debugging = "Howdy" + z[:username] + ""
 end
end
end

ユーザーモデル:

class Users < ActiveRecord::Base
validates :username, :presence => true

  attr_accessible :email, :password, :username
end
4

2 に答える 2

1

使用している場合は、モデルに含まれている必要がありますactive record

 validates :username, :presence => true

それはあるべきですUser < ActiveRecord::Base

user.rb

class User < ActiveRecord::Base
  validates :username, :presence => true  #or you can also write as 'validates_presence_of :username'

  attr_accessible :email, :password, :username
end

home_controller.rb

class HomeController < ApplicationController
  def index
    if params[:username]
     l = User.new(:username => params[:username], :password => params[:password], :email => params[:email])
     if l.save?
       flash[:success] = "Valid user"
     else
       flash[:error] = "Invalid user"
     end

     z = User.where(:username => params[:username]).limit(1).last
     @debugging = "Howdy" + z[:username] + ""
    end
  end
end
于 2013-03-25T16:39:04.147 に答える
0

あなたのモデルは大丈夫そうです

このためにインデックスアクションを変更してみてください。

if params[:username]
  user = User.create(:username => params[:username], :password => params[:password], :email => params[:email])
  if user.persisted?
    @debugging = "Howdy #{user.username}"
  else
    @debugging = "Error while creating user"
  end
end

ユーザーが有効でない場合、User.createはデータベースに永続化されていないUserオブジェクトを作成します

于 2013-03-25T16:56:04.977 に答える