2016-04-11 6 views
0

Rails 4.0.1 и разработать 3.4.1Указать неопределенный метод `user_changed? '

Получив следующее сообщение об ошибке, это независимо от того, что sign_in или sign_up:

NoMethodError в Разрабатывают :: SessionsController # создать

неопределенный метод ` user_changed? для #

По умолчанию разработчики не генерируют никаких контроллеров, и ни одна из них не была добавлена; нет регистраций или session_controller.

Модель

Пользователь:

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 

Маршруты:

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 

Маршруты Таблица:

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 

кода из приложения \ Views \ разработать \ регистрации \ new.html.erb

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

И, наконец, код из Разрабатывают \ сессий \ 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> 

бы очень признателен за любую помощь, чтобы восстановить способность подписать обратно в систему или зарегистрироваться.

Благодаря

ответ

0

Регистрации и сессий контроллеры встроены в завещанию.

Я предполагаю, что это сломало, когда вы добавили фотографию пользователя?

У вас действительно есть поле в вашей пользовательской таблице, которая называется user, которая содержит ваше изображение? Если это так, вам нужно создать миграцию для создания этого имени.

rails g migration rename_user_photo_field 

Редактировать HTE файл

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

трг, большой вопрос! У меня есть следующий под ** пользователь ** таблица в схеме: 't.string "изображение"' последней миграция: класс 'AddImageToUsers AnonymousFerret

+0

Означает ли это, что я должен следовать вашему примеру с чем-то вроде этого? 'rename_column: users,: user,: image,: string' – AnonymousFerret

+0

Если это уже строка, вам не нужно указывать тип данных, вы просто переименовываете. Любые изменения данных, которые вы хотите внести в столбец, тогда да, вам нужно будет предоставить полное определение :) – trh