2016-11-25 2 views
0

J'essaie d'obtenir le démarquage opérationnel sur ma webapp en utilisant pygment 0.6.3 et redcarpet 3.3. Malheureusement, je suis face à un mur ici lorsque vous appelez la méthode démarquage:Application_helper et ruby ​​gem Erreur Redcarpet

uninitialized constant ApplicationHelper::Redcarpet

est le module Ici, je fais appel à partir application_helper.rb:

module ApplicationHelper 
    def markdown(content) 
     renderer = Redcarpet::Render::HTML.new(hard_wrap: true, filter_html: true) 
     options = { 
      autolink: true, 
      no_intra_emphasis: true, 
      disable_indented_code_blocks: true, 
      fenced_code_blocks: true, 
      lax_html_blocks: true, 
      strikethrough: true, 
      superscript: true 
     } 
     Redcarpet::Markdown.new(renderer, options).render(content).html_safe 
    end 
end 

Je suis donc appeler cette méthode de la façon suivante:

<div id= "content"> 
     <%= markdown @post.content%> 
</div> 

Entre autres recherches, je l'ai déjà fait ce qui suit:

  • mise à jour du paquet
  • bundle installer
  • redémarrer mon serveur
  • essayé d'autres versions de pygments et redcarpet

que j'ai trouvé quelques informations disant que je devrais retirer le Gemfile.lock (en supprimant , il réapparaît automatiquement).

Nous vous remercions de votre aide à ce sujet.

Edit: Ajouté Gemfile

source 'https://rubygems.org' 

gem 'rails', '~> 5.0.0', '>= 5.0.0.1' 
gem 'sqlite3' 
gem 'puma', '~> 3.0' 
gem 'sass-rails', '~> 5.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.2' 
gem 'jquery-rails' 
gem 'turbolinks', '~> 5' 
gem 'jbuilder', '~> 2.5' 
gem 'pygments.rb', '~> 0.6.3' 
gem 'redcarpet', '~> 3.3', '>= 3.3.4' 

group :development, :test do 
    gem 'byebug', platform: :mri 
end 

group :development do 
    gem 'web-console' 
    gem 'listen', '~> 3.0.5' 
    gem 'spring' 
    gem 'spring-watcher-listen', '~> 2.0.0' 
end 

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 
+0

comment allez-vous, y compris dans votre application redcarpet? – sevenseacat

+0

via le Gemfile: gem 'redcarpet', '~> 3.3', '> = 3.3.4' –

+0

pouvez-vous ajouter votre Gemfile à la question? – sevenseacat

Répondre

0

Essayez d'écrire ce en vous déposer

before_save :assign_markdown_content, if: -> { content_changed? } 

    def assign_markdown_content 
    assign_attributes({ 
     markdown_content: self.class.markdown.render(content) 
    }) 
    end 
+0

merci pour cela. Je ne suis pas tout à fait sûr de savoir où placer ce morceau de code. Peux-tu élaborer? –

+0

Aussi, après avoir révisé mon code pour les dernières 24h, il m'a semblé que j'avais une petite faute d'orthographe entre dans ma variable "render" ... J'ai édité mon post en conséquence. Néanmoins, cette erreur m'est arrivée avant. Pour une raison magique, cela fonctionne maintenant. Incroyablement frustrant de ne pas être capable de comprendre pourquoi il est opérationnel cette fois-ci, mais je l'achète! –

0

Pour tous ceux qui pourraient rencontrer ce problème, même avec d'autres fonctionnalités que vous souhaitez mettre en œuvre, appuyez sur la CTRL -C command, éteignez votre serveur de rails, ne pas seulement bundle install et rails s.

Après une journée entière d'essayer de comprendre ce qui se passait sous le capot, les touches CTRL-C senti comme Noël ....