Hello,
Even though I'm quite a newbie in Ruby and Ruby on Rails, I've been
trying to fix Binarylogic's authlogic-openid gem, over on
http://github.com/DBA/authlogic_openid, which is current version is
incredibly outdated due to the upgrades made to the rails/
open_id_authentication plugin.
So far, I've managed to get the registration (new account) process to
work when the user provides a valid OpenID. However, when he enters a
value like ".." a message is set on @user.errors.on
(:openid_identifier) but the render :action => 'new' renders a blank
screen, for a reason that I'm yet to understand.
Here's my UserController#create
def create
@user = User.new(params[:user])
@user.save do |result|
if result
flash[:notice] = "Registration successfull."
redirect_to root_url
else
render :action => 'new'
end
end
end
As mentioned, it works great when the user enters a valid openid. The
save block is yield by acts_as_authentic:
def save(perform_validation = true, &block)
return false if perform_validation &&
authenticate_with_openid? && !authenticate_with_openid
return false if new_record? && (!openid_complete? &&
@openid_error.nil?)
result = super
yield(result) unless block.nil?
result
end
However, when the openid_identifer validation kicks in, something in
the "supper" is preventing the render :action => 'new' set in the
controller for when the result is not "true".
I'm a bit new on this kind of issues, so bare with me on this
eventually newbie question... Could someone give me some guidance on
why invoking the super on the save method is making it impossible to
render the new action in order to show the user his error messages?
Best regards,
DBA
--
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.