我有两个设计模型,我希望在我的导航栏中有一个表格,我有电子邮件字段,密码和提交按钮。类似于devise sign已经提供的功能。但问题是,我有两个精巧的模型。如果我只有一个模型,根据这个指南https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app
我只需将下面的代码粘贴到我的助手中就可以了,但是如果我有两个模型呢?如何让用户通过一个表单签名?
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
任何帮助都是非常感谢的。谢谢
发布于 2013-05-12 16:42:00
您可以简单地执行以下操作
@var1 = Model1.find_by_email(params[:email])
@var2 = Model2.find_by_email(params[:email])
sign_in @var1 || @var2
如果没有找到任何内容,小的explain find_by_attr将返回nil,然后您可以使用logical or sign_in现有用户。但是,如果根本没有找到任何记录,则应该添加类似于避免sign_in nil
的内容
sign_in(@var1 || @var2) if @var1 || @var2
发布于 2013-05-12 15:52:30
为sign_in表单创建一个包装器模型,并在登录操作中使用逻辑来决定使用两个用户模型中的哪一个。
它不是真正的包装器,但我想不出合适的词。
https://stackoverflow.com/questions/16509040
复制