我正在使用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
答案 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