在Rails自定义表单中使用设计表单

时间:2012-05-17 19:29:00

标签: ruby-on-rails forms devise

我正在使用Devise gem在我当前的项目中进行身份验证。我在自定义表单中使用设计注册和登录表单时遇到问题,我不知道如何在我的项目中实现它。

此自定义表单有20-25个字段,如果当前用户未登录,我想在同一视图中包含设备登录和注册表单。因此,当用户点击表单的保存按钮时,控制器将首先验证或注册用户,然后保存表单。

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

1 个答案:

答案 0 :(得分:2)

查看Digi_Cazter的链接,然后检查signed_in后添加表单?

在你的create方法中,这样的东西应该有效:

   @user = User.new(:email => 'test@example.com', :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