我是RoR的新手,正在嘗試自己創建一個正在運行的版本來完成殭屍課程的rails課程後進行實驗。我目前正在遵循本教程(http://railscasts.com/episodes/250-authentication-from-scratch)嘗試從頭開始構建認證系統。我知道它是在rails 3中完成的,所以我有一些樂趣將一些事情改變爲rails 4友好。UsersController中的SyntaxError#create - @ user.save Ruby on Rails
但是,試圖創建一個用戶我得到的錯誤 「在UsersController#的SyntaxError打造」 用手一指我UsersController的8(如@ user.save)
**編輯**在/ usr /本地時/rvm/gems/[email protected]/gems/activesupport-4.0.2/lib/active_support/callbacks.rb:377:語法錯誤,意外的'=',期待')'
錯誤是說期待')',但我有一個'='符號
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to root_url, :notice => "Signed up!"
else
render "new"
end
end
private
def user_params
params.require(:user).permit(:username, :email, :password, :salt, :encrypted_password)
end
end
class User < ActiveRecord::Base
attr_accessor :password
validates_presence_of :password, :on =>create # needed to move line up from below to. Cannot encrypt password without validating password
before_save :encrypt_password
validates_confirmation_of :password
validates_presence_of :email
validates_uniqueness_of :email
def encrypt_password
if password.present?
self.password_salt = BCrypt::Engine.generate_salt
self.password_hash = BCrypt::Engine.hash_secret(password, password_salt)
end
end
end
在模型中':on => create'只是一個copy'n'paste錯誤,還是真的是這樣嗎? –
:on => create是模型。需要將它移動到:encrypt_password方法之前,因爲我收到錯誤。 – megacanyon
嘗試從'User'類中刪除'attr_accessor:password' ... – CDub