2012-05-17 3 views
0

현재 프로젝트에서 인증을 위해 Devise gem을 사용하고 있습니다. 내 사용자 정의 양식 내에서 등록 및 로그인 양식을 사용하는 문제가 붙어 있고 내 프로젝트에서 구현 방법을 모르겠습니다.레일즈 커스텀 양식에서 디바이스 형식 사용하기

이 사용자 정의 양식에는 20-25 개의 필드가 있으며 현재 사용자가 로그인하지 않은 경우 동일한보기에서 장치 로그인 및 등록 양식을 포함하고자합니다. 따라서 사용자가 폼의 Save 버튼을 누를 때 컨트롤러는 먼저 사용자를 인증 또는 등록한 다음 나중에 폼을 저장합니다.

class BookController < ApplicationController 
    def new 
     @book = Shop::Book.new 
    end 

    def create 
     @book = Book.new(params[:book]) 

     # TODO:: 
     # validate/register the user if not currently logged-in 

     if @book.save 
      redirect_to :action => 'list' 
     else 
      @subjects = Subject.find(:all) 
      render :action => 'new' 
     end 
    end 
end 
+0

당신은 하나 개의보기에서 두 형태를 보여줄 수, 다음 로그인/등록 양식에 대한 아약스 요청을 사용 로그인 할 페이지. 내가 생각할 수있는 유일한 다른 방법은 devise와 사용자 정의 양식 데이터 사이의 관계를 설정하고 form_for를 사용하는 것입니다. – digicazter

+0

도움이되는지 확인하십시오. http://pupeno.com/2010/08/29/show-a-devise-log-in-form-in-another-page/ – digicazter

+0

먼저 로그인 및 등록을 위해 form_remote_tag를 작성하는 것에 대해 생각했지만 유용성 문제가 있습니다. 이 양식에는 사용자를 먼저 로그인/등록한 다음 모델 저장을 진행하는 "저장"버튼 하나만 있습니다. –

답변

1

signed_in을 확인한 후 양식을 추가하십시오. 에서

당신이 같은 방법 뭔가 일을해야 만들 : 사용자가를 떠날 필요하지 않도록

@user = User.new(:email => '[email protected]', :password => 'password', #values from params 
    :password_confirmation => 'password') 
    @user.save 
    sign_in @user #if you want to do this 

     if @book.save 
      redirect_to :action => 'list' 
     else 
      @subjects = Subject.find(:all) 
      render :action => 'new' 
     end 
관련 문제