2016-04-11 18 views
0

Rails 4.0.1 und 3.4.1 ersinnenDevise undefinierte Methode `user_changed? '

den folgenden Fehler empfangen, unabhängig davon, ob es sign_in oder sign_up:

NoMethodError in Devise :: SessionsController # erstellen

nicht definierte Methode ` user_changed? ' für #

Devise generiert standardmäßig keine Controller, und keine wurden hinzugefügt; Es gibt keine Registrierungen oder Sessions_controller.

Benutzermodell:

class User < ActiveRecord::Base 

    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 

    devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable, :registerable 

    mount_uploader :user, ImageUploader 

end 

Routen:

Myapp::Application.routes.draw do 
    devise_for :users 
    resources :posts 
    resources :projects 
    resources :contacts, only: [:new, :create] 
    get 'welcome/index' 
    root 'welcome#index' 

    get '*path' => redirect('/') 
end 

Routen Tabelle:

Prefix Verb URI Pattern     Controller#Action 
     new_user_session GET /users/sign_in(.:format)  devise/sessions#new 
      user_session POST /users/sign_in(.:format)  devise/sessions#create 
    destroy_user_session DELETE /users/sign_out(.:format)  devise/sessions#destroy 
      user_password POST /users/password(.:format)  devise/passwords#create 
     new_user_password GET /users/password/new(.:format) devise/passwords#new 
     edit_user_password GET /users/password/edit(.:format) devise/passwords#edit 
         PATCH /users/password(.:format)  devise/passwords#update 
         PUT /users/password(.:format)  devise/passwords#update 
cancel_user_registration GET /users/cancel(.:format)  devise/registrations#cancel 
     user_registration POST /users(.:format)    devise/registrations#create 
    new_user_registration GET /users/sign_up(.:format)  devise/registrations#new 
    edit_user_registration GET /users/edit(.:format)   devise/registrations#edit 
         PATCH /users(.:format)    devise/registrations#update 
         PUT /users(.:format)    devise/registrations#update 
         DELETE /users(.:format)    devise/registrations#destroy 
        posts GET /posts(.:format)    posts#index 
         POST /posts(.:format)    posts#create 
       new_post GET /posts/new(.:format)   posts#new 
       edit_post GET /posts/:id/edit(.:format)  posts#edit 
        post GET /posts/:id(.:format)   posts#show 
         PATCH /posts/:id(.:format)   posts#update 
         PUT /posts/:id(.:format)   posts#update 
         DELETE /posts/:id(.:format)   posts#destroy 
       projects GET /projects(.:format)   projects#index 
         POST /projects(.:format)   projects#create 
      new_project GET /projects/new(.:format)  projects#new 
      edit_project GET /projects/:id/edit(.:format) projects#edit 
       project GET /projects/:id(.:format)  projects#show 
         PATCH /projects/:id(.:format)  projects#update 
         PUT /projects/:id(.:format)  projects#update 
         DELETE /projects/:id(.:format)  projects#destroy 
       contacts POST /contacts(.:format)   contacts#create 
      new_contact GET /contacts/new(.:format)  contacts#new 
      welcome_index GET /welcome/index(.:format)  welcome#index 
        root GET /       welcome#index 

-Code von app \ Ansichten \ ersinnen \ Anmeldungen \ new.html.erb

<%= form_for(resource, as: resource_name, url: user_registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

Und schließlich Code aus devise \ Sitzungen \ new.html.erb:

<%= form_for(resource, as: resource_name, url: user_session_path(resource_name)) do |f| %> 
    <div class="field"> 
     <%= f.label :email %><br /> 
     <%= f.email_field :email, autofocus: true %> 
    </div> 

Würde schätzen jede Hilfe die Fähigkeit wiederzuerlangen oder registrieren anmelden zurück.

Dank

Antwort

0

Die Anmeldungen und Sitzungen Controller werden in devise gebaut.

Ich denke, das ist kaputt, wenn Sie ein Benutzerfoto hinzugefügt haben?

Haben Sie wirklich ein Feld in Ihrer Benutzertabelle user, die Ihr Bild enthält? Wenn dies der Fall ist, müssen Sie eine Migration erstellen, um diesen Namen zu erstellen.

rails g migration rename_user_photo_field 

bearbeiten hte Datei

class RenameUserPhoto < ActiveRecord::Migration 
    def change 
    rename_column :users, :user, :photo 
    end 
end 
+0

trh, große Frage! Ich habe folgendes unter den ** Benutzer ** Tabelle in Schema: 't.string "Bild"' neueste Migration: 'Klasse AddImageToUsers AnonymousFerret

+0

Bedeutet das, ich sollte dein Beispiel mit so etwas folgen? 'rename_column: users,: Benutzer,: image,: string' – AnonymousFerret

+0

Wenn es sich bereits um eine Zeichenkette handelt, müssen Sie keinen Datentyp angeben, Sie benennen nur um. Alle Datenänderungen, die Sie an der Spalte vornehmen möchten, dann ja, Sie müssten eine vollständige Definition bereitstellen :) – trh

Verwandte Themen