Ich lese den ganzen Thread auf diesem, aber ich kann immer noch nicht herausfinden, was los ist. Ich habe alle Implementierungshandbücher durchgegangen und bin ihnen gefolgt, aber nach einer neuen Benutzerregistrierung geht die Weiterleitung an den Benutzercontroller, insbesondere Benutzer # show.Devise after_sign_up_for Pfad funktioniert nicht
Der erste Aufruf einer neuen Registrierung läuft über meinen Registrierungscontroller. Das wurde bestätigt. Aber nach der Registrierung passiert es den Registrationscontroller nicht mehr. Es geht durch den Benutzer Controller. Ich habe die beiden übergeordneten Methoden in den neuen Registratur-Controller unterbrochen und sie haben nie getroffen.
/routes.rb
Rails.application.routes.draw do
root to: 'app#index'
devise_for :users, controllers: { registrations: "registrations" }
resources :users do
member do
put 'follow', to: 'users#follow'
put 'unfollow', to: 'users#unfollow'
end
end
end
registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
protected
#call for new registration does pass through here
#after new registration does not pass through here
def after_inactive_sign_up_path_for(resource)
#never gets here after new registration
other_path(resource)
end
def after_sign_up_path_for(resource)
#never gets here after new registration
other_path(resource)
end
end
neues Anmeldeformular:
<form action="index.html">
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div class="form-group">
<%= f.email_field :email, autofocus: true, placeholder: "Email", class: "form-control rounded input-lg text-center no-border" %>
</div>
<div class="form-group">
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %><br />
<%= f.password_field :password, autocomplete: "off", placeholder: "Password", class: "form-control rounded input-lg text-center no-border" %>
</div>
<div class="form-group">
<%= f.password_field :password_confirmation, autocomplete: "off", placeholder: "Confirm Password", class: "form-control rounded input-lg text-center no-border" %>
</div>
<div class="checkbox i-checks m-b">
<label class="m-l">
<input type="checkbox" checked=""><i></i> Agree the <a href="#">terms and policy</a>
</label>
</div>
<button type="submit" class="btn btn-lg btn-warning lt b-white b-2x btn-block btn-rounded"><i class="icon-arrow-right pull-right"></i><span class="m-r-n-lg">Sign up</span></button>
<% end %>
<div class="text-center m-t m-b"><small><%= link_to "Already have an account?", new_session_path(resource_name) %></small></div>
Konsole:
Started GET "https://stackoverflow.com/users/index.html?utf8=%E2%9C%93&authenticity_token=KlAk4ctYpw%2F2eHGqZ0OsAymf5BxUPxeBiFzeOatn2JDUQJdPk8fGoB%2BmuN4oeN3KviQdVwN%2FxMfnjH4zIVooOg%3D%3D&user%5Bemail%5D=asdf%40asdf.com&user
%5Bpassword%5D=[FILTERED]&user%5Bpassword_confirmation%5D=[FILTERED]" for ::1 at 2016-10-25 22:10:37 -0400
Processing by UsersController#show as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"KlAk4ctYpw/2eHGqZ0OsAymf5BxUPxeBiFzeOatn2JDUQJdPk8fGoB+muN4oeN3KviQdVwN/xMfnjH4zIVooOg==", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]
", "password_confirmation"=>"[FILTERED]"}, "id"=>"index"}
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 0], ["LIMIT", 1]]
Completed 404 Not Found in 3ms (ActiveRecord: 0.3ms)
ActiveRecord::RecordNotFound (Couldn't find User with 'id'=index):
app/controllers/users_controller.rb:6:in `show'
Rendering /Users/Joe/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
Rendering /Users/Joe/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
Rendered /Users/Joe/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (3.7ms)
Rendering /Users/Joe/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
Rendered /Users/Joe/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.8ms)
Rendering /Users/Joe/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
Rendered /Users/Joe/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (2.0ms)
Rendered /Users/Joe/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (69.3ms)
Anfrage params:
{"utf8"=>"✓",
"authenticity_token"=>"KlAk4ctYpw/2eHGqZ0OsAymf5BxUPxeBiFzeOatn2JDUQJdPk8fGoB+muN4oeN3KviQdVwN/xMfnjH4zIVooOg==",
"user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"},
"id"=>"index",
"format"=>"html"}
fügen Sie Ihren kompletten Registrierungs-Controller ein. Ihre Registrierungsmethode create ist falsch, das Formular sollte auf "Registrierungen erstellen" umleiten, aber es wird den Nutzern angezeigt, dass Ihr Formular eine falsche URL hat. Bitte fügen Sie das Formular – Sravan
@Sravan Das war es !! Es gab ein extra führendes Formular-Tag, das zu index.html ging. Aktualisierter Code oben für die Anzeige. Das zusätzliche Formular-Tag war von einem vorherigen Bit-Code übrig geblieben. – j0j0j0
ist es jetzt getan? Wenn nicht, was ist Ihr Pfad für Registrierungscontroller? – Sravan