La disposition active de l'administrateur a été perdue après avoir remplacé l'action du contrôleur

StackOverflow https://stackoverflow.com/questions/8383790

  •  28-10-2019
  •  | 
  •  

Question

Ma nouvelle action de contrôleur:

controller do
  layout 'active_admin'
  def index
    @pages = Page.all
  end
end

Après avoir actualisé la page que j'ai reçue:

undefined method `base' for nil:NilClass 
render view_factory.layout

Que dois-je faire pour réparer cela?

Je commence à réécrire l'action du contrôleur car j'ai reçu ce message pour mon index Action:

undefined method `num_pages' for #<Array:0x0000000b860eb0>
render renderer_for(:index)

Peut-être que quelqu'un sait comment réparer cela?

Était-ce utile?

La solution

La première undefined method 'num_pages' for #<Array:0x0000000b860eb0> peut se produire si vous avez une variable d'instance définie dans un before_filter dans ApplicationController avec le nom pluriel d'un modèle comme je l'ai fait. Le bug est signalé ici.

Autres conseils

Aurait besoin de voir le code sur la page de vue pour cela, mais il me semble que vous passez un appel pour num_pages sur un objet qui est un array classer. Puisque la classe Array de Ruby n'a pas num_pages Méthode, il lance une erreur.

Jamie tu as raison! Mais ensuite j'ai reçu ce message pour mon index Action:

undefined local variable or method `per' for ActiveRecord::Relation

Et je résouse ce problème en faisant ceci:

# config/initializers/will_paginate.rb
if defined?(WillPaginate)
  module WillPaginate
    module ActiveRecord
      module RelationMethods
        alias_method :per, :per_page
        alias_method :num_pages, :total_pages
      end
    end
  end
end

Le bug est signalé ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top