【发布时间】:2021-08-28 11:49:49
【问题描述】:
我在 Rails 开发方面的时间不长,现在正在处理结帐登录逻辑。我最终找到了这种解决方案,以便将用户作为资源在其他控制器中使用设计
def resource_name
:user
end
def resource
@resource ||= User.new
end
def resource_class
User
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
虽然我现在可以在控制器中使用资源,但当我尝试登录/注册时,Devise 无法正常工作。我在尝试登录时收到错误的电子邮件/密码错误,但在尝试注册时没有得到响应。即使我将电子邮件字段留空,我也不会收到由于 resource.errors 而出现的错误。
我的代码是:
= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
= render 'devise/shared/error_messages', resource: resource
= f.label :email, 'Enter Email'
= f.email_field :email, placeholder: 'Enter Email'
= resource.errors.messages[:email].to_sentence
= f.submit ''
也许其他人有同样的问题或在这种情况下看到任何解决方案,我将不胜感激。
【问题讨论】:
标签: ruby-on-rails devise