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.

