Ошибка установки 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'