рельсы: NoMethodError только в производстве - PullRequest
4 голосов
/ 30 июня 2011

Я нахожусь на 12-м часе программирования, так что я могу пропустить что-то простое, но есть какие-то предложения по этому вопросу?

В моем app_helper я добавил модуль для фильтра красных карточек с haml

module Haml::Filters::Redcarpet
  include Haml::Filters::Base
  include ActionView::Helpers::TagHelper

  def render(text)
    options = [:autolink, :smart, :hard_wrap, :no_intraemphasis]
    content_tag(:div, Redcarpet.new(text.to_s, *options).to_html.html_safe, :class => "markup" )
  end
end

отлично работает в разработке.но в производстве он выбрасывает

[ !EXCEPTION! ] NoMethodError: undefined method 'content_tag' for Haml::Filters::Redcarpet:Module

с чего бы это?или что я могу проверить?я даже запустил консоль на производстве и смог включить TagHelper и использовать эти методы.озадачен ...

1 Ответ

1 голос
/ 11 июля 2011

Я предполагаю, что у вас есть разные версии одного или нескольких драгоценных камней на вашей рабочей коробке из среды разработки.Выполните «список драгоценных камней» в обоих списках и добавьте результаты в исходное сообщение.

Лучший способ избежать этой проблемы - использовать Ruby Version Manager (RVM) и гем 'bundler': вы можете создатьgemset, специфичный для вашего проекта, и, таким образом, убедитесь, что гемы одинаковы для обеих версий (prod & dev) проекта.

rvm: https://rvm.io

bundler: http://gembundler.com/

О - и если вы посмотрите вниз на трассировку своего стека, вы, вероятно, увидите ссылку на гем, который настраивает вещи хамла / красной карпеты, это, вероятно, виновник, то есть имеет другую версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...