2016-07-09 3 views
0

J'ai mis à jour ma version de Rails de 3.2.13 à Rails 4.2.6. Dans l'ancienne version, ils ont utilisé map_fields plugins où dans mon contrôleur de contacts:méthode non définie `write_inheritable_attribute 'pour ContactsController: Classe

class ContactsController < ApplicationController 
    require 'map_fields' 
    map_fields :mapper, ['First Name','Last Name', 'Email', 'Notes'], :file_field => :file, :params => [:contact] 

    def create 
    @user = User.find(params[:user_id]) 
    @contact = @user.contacts.create(contact_params) 
    respond_to do |format| 
     if @contact.save 
     format.json { render :json => { :notice => 'Contact was successfully created!',:redirect => user_contacts_url} } 
     format.html { redirect_to(user_contacts_url(@user), :notice => 'Contact was successfully created!', :type => 'success') } 
     else 
     format.json { render :json => {:redirect => false} } 
     format.html { render :action => "edit" } 
     end 
    end 
    end 
    def import 
    @contact = Contact.new 
    end 
    def mapper 
    @contact = Contact.new(params[:contact]) 
    count = 0 

    if fields_mapped? 
     mapped_fields.each do |row| 
     params[:contact] = {"user_id" => @current_user.id, "firstname" => row[0], "lastname" => row[1], "notes" => row[3], "email" => row[2].try(:strip)} 
     contact = Contact.new(params[:contact]) 

     if contact.save 
      count = count + 1 
     end 
     end 

     if count > 0 
     flash[:notice] = "#{count} Contact(s) created" 
     redirect_to :action => :index 
     else 
     flash[:notice] = "No contact was created..." 
     redirect_to :action => :index 
     end 

    else 
     @best_row = @rows[1] 
     render 
    end 

    rescue MapFields::InconsistentStateError 
     flash[:error] = 'Please try again' 
     redirect_to :action => :import 
    rescue MapFields::MissingFileContentsError 
     flash[:error] = 'Please upload a file' 
     redirect_to :action => :import 
    end 

end 

quand je lance le code que je reçois l'erreur

ActionController::RoutingError - undefined method `write_inheritable_attribute' for ContactsController:Class: 
actionpack (4.2.6) lib/action_dispatch/routing/route_set.rb:63:in `rescue in controller' 
actionpack (4.2.6) lib/action_dispatch/routing/route_set.rb:58:in `controller' 
actionpack (4.2.6) lib/action_dispatch/routing/route_set.rb:39:in `serve' 
actionpack (4.2.6) lib/action_dispatch/journey/router.rb:43:in `block in serve' 
actionpack (4.2.6) lib/action_dispatch/journey/router.rb:30:in `serve' 
actionpack (4.2.6) lib/action_dispatch/routing/route_set.rb:817:in `call' 
meta_request (0.4.0) lib/meta_request/middlewares/app_request_handler.rb:13:in `call' 
meta_request (0.4.0) lib/meta_request/middlewares/meta_request_handler.rb:13:in `call' 
warden (1.2.6) lib/warden/manager.rb:35:in `block in call' 
warden (1.2.6) lib/warden/manager.rb:34:in `call' 
client_side_validations (4.2.5) lib/client_side_validations/middleware.rb:15:in `call' 
rack (1.6.4) lib/rack/etag.rb:24:in `call' 
rack (1.6.4) lib/rack/conditionalget.rb:25:in `call' 
rack (1.6.4) lib/rack/head.rb:13:in `call' 
remotipart (1.2.1) lib/remotipart/middleware.rb:27:in `call' 
actionpack (4.2.6) lib/action_dispatch/middleware/params_parser.rb:27:in `call' 
actionpack (4.2.6) lib/action_dispatch/middleware/flash.rb:260:in `call' 
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context' 
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call' 
actionpack (4.2.6) lib/action_dispatch/middleware/cookies.rb:560:in `call' 
activerecord (4.2.6) lib/active_record/query_cache.rb:36:in `call' 
activerecord (4.2.6) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call' 
actionpack (4.2.6) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' 
activesupport (4.2.6) lib/active_support/callbacks.rb:88:in `__run_callbacks__' 
activesupport (4.2.6) lib/active_support/callbacks.rb:778:in `_run_call_callbacks' 
activesupport (4.2.6) lib/active_support/callbacks.rb:81:in `run_callbacks' 
actionpack (4.2.6) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
rails-dev-tweaks (1.2.0) lib/rails_dev_tweaks/granular_autoload/middleware.rb:36:in `call' 
actionpack (4.2.6) lib/action_dispatch/middleware/remote_ip.rb:78:in `call' 
airbrake (4.3.8) lib/airbrake/rails/middleware.rb:13:in `call' 
better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call' 
better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call' 
better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call' 
actionpack (4.2.6) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' 
rack-contrib (1.4.0) lib/rack/contrib/response_headers.rb:17:in `call' 
meta_request (0.4.0) lib/meta_request/middlewares/headers.rb:16:in `call' 
actionpack (4.2.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
railties (4.2.6) lib/rails/rack/logger.rb:38:in `call_app' 
railties (4.2.6) lib/rails/rack/logger.rb:20:in `block in call' 
activesupport (4.2.6) lib/active_support/tagged_logging.rb:68:in `block in tagged' 
activesupport (4.2.6) lib/active_support/tagged_logging.rb:26:in `tagged' 
activesupport (4.2.6) lib/active_support/tagged_logging.rb:68:in `tagged' 
railties (4.2.6) lib/rails/rack/logger.rb:20:in `call' 
actionpack (4.2.6) lib/action_dispatch/middleware/request_id.rb:21:in `call' 
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call' 
rack (1.6.4) lib/rack/runtime.rb:18:in `call' 
activesupport (4.2.6) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call' 
rack (1.6.4) lib/rack/lock.rb:17:in `call' 
actionpack (4.2.6) lib/action_dispatch/middleware/static.rb:120:in `call' 
rack (1.6.4) lib/rack/sendfile.rb:113:in `call' 
airbrake (4.3.8) lib/airbrake/user_informer.rb:16:in `_call' 
airbrake (4.3.8) lib/airbrake/user_informer.rb:12:in `call' 
railties (4.2.6) lib/rails/engine.rb:518:in `call' 
railties (4.2.6) lib/rails/application.rb:165:in `call' 
rack (1.6.4) lib/rack/content_length.rb:15:in `call' 
thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process' 
thin (1.5.1) lib/thin/connection.rb:79:in `pre_process' 
thin (1.5.1) lib/thin/connection.rb:54:in `process' 
thin (1.5.1) lib/thin/connection.rb:39:in `receive_data' 
eventmachine (1.0.9.1) lib/eventmachine.rb:193:in `run' 
thin (1.5.1) lib/thin/backends/base.rb:63:in `start' 
thin (1.5.1) lib/thin/server.rb:159:in `start' 
rack (1.6.4) lib/rack/handler/thin.rb:19:in `run' 
rack (1.6.4) lib/rack/server.rb:286:in `start' 
railties (4.2.6) lib/rails/commands/server.rb:80:in `start' 
railties (4.2.6) lib/rails/commands/commands_tasks.rb:80:in `block in server' 
railties (4.2.6) lib/rails/commands/commands_tasks.rb:75:in `server' 
railties (4.2.6) lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
railties (4.2.6) lib/rails/commands.rb:17:in `<top (required)>' 
bin/rails:4:in `<main>' 

Ceci est mon fichier routes.rb:

Htm::Application.routes.draw do 
    .......................other routes...... 
    resources :contacts do 
     post :import_remote, :on => :collection 
     get :import_remote, :on => :collection 
     collection do 
     post :mapper 
     get  :import 
     post :destroy_multiple 
     delete :destroy_all 
     end 
    end 
end 

J'ai suivi les mêmes étapes que celles que vous avez indiquées dans issue 1, mais j'obtiens cette erreur. S'il vous plaît aider.

+0

vérifier ce lien [écriture héritable-attribut-question] (http://stackoverflow.com/questions/11078723/undefined-method-write-inheritable-attribute-for-railsgeneratorbaseclass – Sravan

+0

déjà essayé celui-ci mais ne pouvait pas réussir. –

Répondre

0

J'ai également eu le même problème, je l'ai résolu en supprimant rmagic.

gem uninstall rmagick 
gem cleanup 

pack puis

+0

Déjà essayé http://stackoverflow.com/questions/11078723/undefined-method-write-inheritable-attribute-for-railsgeneratorbaseclass –