[RUBY] [Rails] Comment utiliser la méthode d'assistance utilisée dans l'application principale avec Administrer

Problème, ce que tu veux faire

** \\ La méthode d'assistance de l'application principale ne peut pas être utilisée /// **

C'est à ce moment que j'ai utilisé un joyau appelé ** Administrer pour créer un écran d'administration dans l'application Rails **. Lorsque j'essaie d'utiliser la méthode d'assistance définie dans le fichier d'assistance pour une utilisation dans la vue de l'application principale dans la vue sous admin, l'erreur suivante se produit ...

スクリーンショット 2020-07-21 21.00.03.png

ʻImage_present? Est-ce que ** la méthode d'assistance que vous utilisez dans la vue principale de l'application (que vous avez définie dans helpers / shops_helper.rb`) **. Je ne reçois pas de NoMethodError dans l'application principale ... que dois-je faire? ?? ??

environnement

Conclusion

** 1. Décrivez les paramètres suivants dans le fichier config / application.rb. ** ** ** 2. Redémarrez l'application (serveur) **

c'est tout. C'était facile lol

config/application.rb


module Hoge
  class Application < Rails::Application
    #D'autres configs peuvent être écrites

    #d'ici
    config.to_prepare do
      Administrate::ApplicationController.helper Hoge::Application.helpers
    end
    #Jusque là
  end
end

Administrate::ApplicationController.helper Hoge::Application.helpers

Remplacez la partie Hoge de par votre propre nom d'application.

Il a été fermement répertorié dans Problèmes sur GitHub et a été résolu

Best way to include main app helper modules in administrate? #334 スクリーンショット 2020-07-21 20.51.34.png

De côté

En regardant Problèmes GitHub répertoriés dans l'article de référence, il semble y avoir d'autres moyens.

スクリーンショット 2020-07-21 20.52.13.png

Cette méthode est

  1. Créez un répertoire ʻadministrate sous le répertoire helpers`
  2. Créez un fichier ʻapplication_helper.rb` ici
  3. Redéfinissez la méthode d'assistance ici Cela semble être la méthode.

Je l'ai essayé

helpers/administrate/application_helper.rb


module Administrate::ApplicationHelper
  def image_present?(shop)
    if shop.shop_images.present?
      image_tag "#{shop.shop_images[0].shop_image}", class: 'top-cover-img shop-img'
    else
      image_tag asset_path('no-image.png'), class: 'top-cover-img shop-img'
    end
  end
end

Le point est l'héritage de classe lors de la déclaration de module? Il semble écrire (ʻAdministrate :: Application Helper`). Sans cela, vous obtiendrez une erreur de routage. スクリーンショット 2020-07-21 21.10.13.png

Peut être réalisé, mais enfreint le principe DRY

J'aurais pu le réaliser par la méthode ci-dessus, mais je pensais que c'était ** contraire au principe DRY ** car la même méthode d'assistance serait définie deux fois.

Nous recommandons la méthode au début car vous n'avez pas à créer de fichiers inutiles.

Recommended Posts

[Rails] Comment utiliser la méthode d'assistance utilisée dans l'application principale avec Administrer
[Rails] Comment appliquer le CSS utilisé dans l'application principale avec Administrer
[Rails] Comment utiliser la méthode de la carte
[Rails] Comment utiliser la méthode d'assistance, confimartion
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
Comment vérifier les commandes Rails dans le terminal
[Rails] Comment enregistrer plusieurs enregistrements dans la table intermédiaire avec une association plusieurs-à-plusieurs
[rails] Comment utiliser la méthode d'assistance de devise before_action: authenticate_user!
Organisé comment interagir avec le JDK par étapes
Comment interroger Array dans jsonb avec Rails + postgres
[Rails] Comment afficher les images dans la vue
Comment installer Docker dans l'environnement local d'une application Rails existante [Rails 6 / MySQL 8]
[Rails] Solution lorsque l'erreur "visite de la méthode non définie" "apparaît lors de l'utilisation de Capybara avec Rspec
Comment utiliser la méthode getter / setter (en orientation objet)
[Avec des astuces de retour] Comment présenter React aux rails les plus simples
[Rails] Comment afficher les informations stockées dans la base de données dans la vue
Comment utiliser la méthode link_to
Comment utiliser la méthode include?
Comment utiliser la méthode form_with
Comment installer jQuery dans Rails 6
Comment installer Swiper in Rails
[Rails / Routing] Comment faire référence au contrôleur dans votre propre répertoire
[Rails] Comment introduire le kaminari avec Slim et changer le design
J'ai essayé de comprendre comment la méthode des rails "redirect_to" est définie
Comment installer le langage utilisé dans Ubuntu et comment créer l'environnement
Comment obtenir la valeur de boolean avec jQuery sous forme simple de rails
J'ai essayé de comprendre comment la méthode des rails "link_to" est définie
Comment renommer un modèle avec des contraintes de clé externes dans Rails
Comment stocker les informations saisies dans la zone de texte dans une variable de la méthode
Comment créer une application avec ruby on rails (en supposant que l'environnement a été construit)
[Java] Comment rechercher des valeurs dans un tableau (ou une liste) avec la méthode contains
Emplacement de la définition de la méthode Résumé de la vérification Lorsque défini dans le projet et Rails / Gem
Comment implémenter la fonctionnalité de recherche dans Rails
Comment changer le nom de l'application dans les rails
[Ruby on Rails] Comment se connecter avec seulement votre nom et mot de passe en utilisant le bijou
[Java] Résumez comment comparer avec la méthode equals
Comment insérer une vidéo dans Rails
[Rails / simple_format] Méthode d'assistance qui reflète les sauts de ligne saisis dans le formulaire
[Java] Comment utiliser la méthode toString ()
Comment utiliser MySQL dans le didacticiel Rails
[Rails] "Pry-rails" qui peuvent être utilisés lors de l'enregistrement avec la méthode create
Quelle est la méthode principale en Java?
[rails] Comment configurer le routage dans les ressources
Comment obtenir la date avec Java
Comment comparer uniquement le temps avec Rails (de quelle heure à quelle heure, quelque chose comme)
Comment implémenter la fonctionnalité de classement dans Rails
Comment déboguer le traitement dans le modèle Ruby on Rails avec juste la console
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Comment faire de https le schéma de l'URL générée par l'assistant d'URL de Rails
Comment référencer une colonne lors du remplacement de la méthode de nom de colonne dans ActiveRecord
[Rails] Comment résoudre le décalage temporel de created_at après la méthode de sauvegarde