[RUBY] Utiliser la fonction de modèle de rails (ERB) autre que le contrôleur (vue Action)

Aperçu

Rails est pratique car il relie les modèles aux actions. Vue Action et ERB (Ruby intégré). Parfois, vous souhaiterez peut-être utiliser le modèle ailleurs. Je l'ai recherché, mais je n'ai pas obtenu beaucoup d'informations, ou cela n'a pas fonctionné quand je pensais l'avoir trouvée, alors je posterai la solution en guise de rappel.

Environnement d'exploitation

ruby 2.6.5 rails 5.2.3

échantillon

Par exemple, utilisez-le dans Job.

Créez un modèle sous app / vues (n'importe quel emplacement est possible).

ERB:sample.html.erb


<%= user_name %>à

Ceci est un échantillon.

Vient ensuite Job.

send_template_job.rb


class SendTemplateJob < ApplicationJob
  queue_as :default

  def perform(*args)
    #Utilisez un modèle
    content = ActionView::Base.new('app/views').render(file: 'sample',
                                                       locals: { user_name: current_user.name },
                                                       layout: false)
    #Décrit le processus d'envoi de la chaîne de caractères générée à l'aide du modèle quelque part
    #Par exemple, mou

  end
end

Si vous écrivez comme ceci, la variable définie comme nom_utilisateur dans erb peut être développée et acquise sous forme de chaîne de caractères.

Recommended Posts

Utiliser la fonction de modèle de rails (ERB) autre que le contrôleur (vue Action)
Je souhaite utiliser la méthode de désinfection autre que View.
Relation de vue du contrôleur de routage des rails
Rails 5 Lecture de code Partie 2 ~ Vue Action ~
Définir autre chose que l'ID pour le routage Rails
Définitions autres que les sept actions de base dans Rails