我创建控制器:
class SigninController < ApplicationController
def index
end
def create
@user = User.find_by_email(params[:user][:email])
if @user
....
sign_in(:user, @user)
else
@user = User.new(params...)
@user.save
...
end
end
end
我是否正确调用sign_in方法?
登入/ index.html.erb:
<h2>Sign in</h2>
<%= form_for(User.new, :as => :user, :url => "signin") do |f| %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<br>
<div><%= f.submit "Sign in" %></div>
<% end %>
如何调用设计的devise sign_in和sign_up方法?
答案 0 :(得分:3)
在app/controllers/application_controller.rb
:
class ApplicationController < ActionController::Base
def after_create_path_for(resource)
sign_in(:user, resource)
end
end
这只是一种猜测。我不知道它是否会奏效。
答案 1 :(得分:0)
您可以但在大多数情况下,您不应创建自定义控制器来登录/注销用户。 Devise有sessions_controller,可以为您实现此功能。查看devise documentation和wiki,它有大量文档。您还可以在那里找到如何自定义视图和控制器行为。
<强>更新强>
如果需要在一个视图上放置两个表单(登录和注册),您可以自定义设计视图。表单操作可能指向不同的标准控制器。我建议使用用户/注册/新表单作为基本表单,并添加用途/会话/新表单。