2016-11-25 5 views
0

Я пытаюсь получить уценку и запустить на моем webapp с помощью pygment 0.6.3 и redcarpet 3.3. К сожалению, я лицом к стене здесь при вызове метода уценки:Application_helper и ruby ​​gem Ошибка Redcarpet

uninitialized constant ApplicationHelper::Redcarpet

Здесь модуль я звоню из 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 

Поэтому я называю этот метод следующим образом:

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

Среди других исследований, я уже сделал следующее:

  • обновление расслоения
  • пакет установка
  • перезагрузить мой сервер
  • пробовал другие версии pygments и redcarpet

Я нашел некоторую информацию говоря, что я должен удалить Gemfile.lock (при удалении его , он автоматически всплывает снова).

Благодарим за помощь.

Edit: Добавлено 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

как вы в том числе redcarpet в вашем приложении? – sevenseacat

+0

через Gemfile: gem 'redcarpet', '~> 3.3', '> = 3.3.4' –

+0

можете ли вы добавить свой Gemfile в вопрос? – sevenseacat

ответ

0

Попробуйте записать это в вас файл

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

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

спасибо. Я не совсем уверен, где поставить этот фрагмент кода. Можете ли вы уточнить? –

+0

Кроме того, после пересмотра моего кода в течение последних 24 часов, казалось, у меня была небольшая ошибка правописания между моей переменной «render» ... Я отредактировал свой пост соответственно. Тем не менее, эта ошибка произошла со мной раньше. По какой-то магической причине он работает сейчас. Невероятно разочаровывающе, чтобы не понять, почему он работает и работает на этот раз, но я его покупаю! –

0

Для всех тех, кто может столкнуться с этой проблемой, даже с другими функциональными возможностями, которые вы хотите реализовать, нажмите CTRL -C, выключите сервер рельсов, не только bundle install и rails s.

После целого дня, пытаясь понять, что происходит под капотом, CTRL-C чувствовал, как Рождество ....