외의 위치에있는 경우 나 사용자가 가입 한 경우 있도록 만들려고 노력하고 실패합니다. 그러나 사용자가 등록 할 때 사용자 이름과 전자 메일이 고유해야 함을 나타내는 오류 메시지를 표시하고 '새'페이지를 다시 렌더링합니다.검증은 저장 한 후 리디렉션 저장된 객체
이것은 내가 대신 @user
로 리디렉션 경우 잘 작동합니다.
이
내 컨트롤러 :def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
login(@user)
format.html { redirect_to "static/tutorial", success: 'Congratulations on starting your journey!' }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
그리고 이러한 User.rb의 관련 라인은 다음과 같습니다
validates_confirmation_of :plain_password
validates_presence_of :name, :username, :email
validates_presence_of :plain_password, :on => :create
validates_uniqueness_of :email, :username
당신은 당신의 코드를 리팩토링에 대해 생각해야한다. 현재'respond_to' 블록 내에서 조건부 논리를 수행해야하는 이유는 없습니다. – zeantsoi
@zeantsoi 레일 제너레이터가 개발 한 코드로, 생각해 보면 꽤 합리적입니다. 'respond_to' 블록에 조건부 로직을 넣을 이유가 없습니다. – Matt