i have routing question related devise.
i have model - member (rather user) , have custom routes
devise_for :members, controllers: {registrations 'members/registrations', omniauth_callbacks: 'members/omniauth_callbacks', sessions: 'members/sessions' } devise_scope :member authenticated :member root :to => 'home#index', as: :authenticated_root end unauthenticated :member root :to => 'devise/sessions#new', as: :unauthenticated_root end end my issue relates sign-up page when fails (due validation failing).
the displayed url is
http://localhost:3000/members/sign_up but if validation fails redirects
http://localhost:3000/members (this page show registration/new form , form works fine if input validates)
in contrast, on sign-in page
http://localhost:3000/members/sign_in if failing validation redirects itself
http://localhost:3000/members/sign_in now may wonder why asking this. have implementation of growly flash messages indicate validation failure. work on different devise views except sign-up one. routing difference difference can see between them. guessing if sign-up page redirected on failure, sign-in page flash messages work.
its odd question insights on routing/url behaviour in devise helpful.
registrations_controller.rb
class members::registrationscontroller < devise::registrationscontroller # /resource/sign_up def new build_resource({}) self.resource.user = user.new respond_with self.resource end # post /resource def create super resource.user.ip_address = request.remote_ip unless resource.email.nil? || resource.email.empty? resource.user.email = resource.email resource.user.save end end private def sign_up_params allow = [:provider, :uid, :email, :password, :password_confirmation, user_attributes: [:member_id, :email, :first_name, :last_name, :institution, :city, :country, :job_title, :about, :tag_list, :picture, :ip_address]] params.require(resource_name).permit(allow) end end
Comments
Post a Comment