Ошибка установки RedCloth на Rails 3.0.3 и RVM на Ubuntu 10.10

Я пытаюсь добавить Redcloth в свой Gem-файл, и когда я запускаю 'bundle install', я получаю следующее:

Установка RedCloth (4.2.6) с собственными расширениями /home/user/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:529:in `rescue in block in build_extensions': ERROR: Не удалось создать собственное расширение gem. (Gem::Installer::ExtensionBuildError)

        /home/user/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb Файлы Gem останутся установленными в /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/RedCloth-4.2.6 для проверки. Результаты заносятся в /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/RedCloth-4.2.6/ext/redcloth_scan/gem_make.out из /home/user/.rvm/rubies/ruby -1.9.2-p136 / lib / ruby ​​/site_ruby/1.9.1/rubygems/installer.rb:507: в `block in build_extensions'из /home/user/.rvm/rubies/ruby-1.9.2-p136/ lib / ruby ​​/site_ruby/1.9.1/rubygems/installer.rb:482: в "каждом" из /home/user/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:482:in `build_extensions'из /home/user/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:156: в `install'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/source.rb:96:in `install' из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/installer.rb:55:in "заблокировать в работе" из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `блок в каждом 'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/spec_set.rb: 12: in `each 'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in `run' из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in `install'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/cli.rb:226: в `install'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22: в `run 'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/vendor/thor/invocation.rb:118: в invoke_task из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/vendor/thor.rb:246:in `dispatch'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/lib/bundler/vendor/thor/base.rb:389: в `start'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/gems/bundler-1.0.10/bin/bundle:13:in `'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/bin/ комплект:19: в `load'из /home/user/.rvm/gems/ruby-1.9.2-p136@vendorguide/bin/bundle:19:in `'

Если я запускаю "gem install RedCloth", а затем запускаю "bundle install", это работает, однако, когда я на самом деле пытаюсь использовать RedCloth в модели 'Vendor.rb', я получаю:

Неинициализированная константа Vendor:: RedCloth

Вот мой гемфайл:

драгоценный камень "рельсы", "3.0.3"


драгоценный камень "компас", ">= 0.10.6"

драгоценный камень "хамл"
драгоценный камень 'formtastic'

gem 'devise',:git => 'git://github.com/plataformatec/devise.git',:branch => 'master'
gem 'oa-oauth',:require => "omniauth/oauth"
драгоценный камень "могли"
драгоценный камень "Далли"
драгоценный камень "исключительный"
драгоценный камень "JSON"
драгоценный камень 'RedCloth'

группа: тестирование: разработка до
  драгоценный камень "ruby-debug19"
  драгоценный камень "rspec-rails", "~> 2.4"
  gem 'sqlite3-ruby',:require => 'sqlite3'
  драгоценный камень "hpricot"
  драгоценный камень 'ruby_parser'
  жемчужина "героку"
  жемчужина "флейти"
конец

группа: тест до
  жемчужина огурцов-рельсов
  драгоценный камень "капибара"
  самоцвет 'database_cleaner'
  жемчужина "мокко"
  драгоценный камень 'factory_girl_rails'
  драгоценный камень 'musta'
  драгоценный камень "ZenTest"
  драгоценный камень 'fakeweb'
конец

А вот и моя модель:

Класс Vendor ActiveRecord:: Base
  has_many: отзывы
  принадлежат: пользователь

  validates_presence_of:name
  validates_presence_of: описание

  before_save:convert_text

  def convert_text
    self.description = RedCloth.new(self.description).to_html разве что self.description.nil?
    self.services_description = RedCloth.new(self.services_description).to_html разве что self.services_description.nil?
    self.clients_description = RedCloth.new(self.clients_description).to_html разве что self.clients_description.nil?
    self.pricing_description = RedCloth.new(self.pricing_description).to_html разве что self.pricing_description.nil?
    self.press = RedCloth.new(self.press).to_html разве что self.press.nil?
  конец
конец

Заранее спасибо.

1 ответ

Решение

Это может быть связано с проблемой, с которой я столкнулся сегодня утром в RedCloth.

Я также установил версию 4.2.6 RedCloth, а затем не смог использовать ее в приложении Sinatra, что бы я ни делал. (Я получил много подобных ошибок, Uninitialized constant RedCloth.) Однако на сайте RedCloth (http://redcloth.org/) говорится, что последняя стабильная версия - только 4.2.2.

Я удалил 4.2.6 и установил 4.2.2, и он работал отлично.

Попробуйте добавить ограничение в ваш Gemfile, т.е. gem 'RedCloth', '4.2.2'

Другие вопросы по тегам