Go to RailsCasts.com and read about OmniAuth with devise.  Episodes
#235, and #236  I would totally recommend you subscribe to his site,
by the way.

SC



On Feb 15, 11:45 am, David M <[email protected]> wrote:
> I have a User model that can save two types of users:
>
>    1. Password-protected users (for this I need has_secure_password)
>    2. Facebook users (for this I don't need has_secure_password, but two
>    different fields: provider and uid)
>
> So, when a normal user registers, the model should validate password fields
> with has_secure_password and validate the presence of the password field:
>
> has_secure_password
> validates :password, presence: true
>
> This works. I have no problem with this.
>
> But when a user wants to register through Facebook, the password is not
> needed, because provider and uid will be filled instead. The problem is
> that I don't know how to disable has_secure_password in this case. I have
> tried this:
>
> has_secure_password
> validates :password, presence: true, unless: :facebook_user?
>
> And this is the facebook_user method:
>
> def facebook_user?
>   provider != nil && uid != nil
> end
>
> But it doesn't work, as it is still complaining about password_digest:
>
> @messages={:password_digest=>["can't be blank"]}
>
> What am I doing wrong? Isn't it possible to disable has_secure_password
> selectively?

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to