2014-05-08 4 views
0

Я создал простой веб-проект в ROR - PostgreSQL в качестве БДОшибка при установке камень в Рубине на проекте Rails

C:\Sites\nested>ruby -v 
ruby 1.9.3p484 (2013-11-22) [i386-mingw32] 

C:\Sites\nested>rails -v 
Rails 4.0.2 

Когда я пытаюсь добавить автоматический внешний ключ либо командной строки

C:\Sites\nested>gem install automatic_foreign_key 

или отредактировать файл гем, добавив

# create automatic foreign key 
gem "automatic_foreign_key", "~> 1.3.0" 

я получил следующее сообщение об ошибке при запуске сервера

C:\Sites\nested>rails s         
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-4.0.2/lib/active_support/core_ext/module/aliasing.rb:32:in `alias_method': undefined method `to_sql' for class `ActiveRecord::ConnectionAdapters::Tab leDefinition' (NameError) 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-.0.2/lib/active_support/core_ext/module/aliasing.rb:32:in `alias_method_chain' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/redhillonrails_core-.2.0/lib/redhillonrails_core/active_record/connection_adapters/table_definition.rb:9:in `block in included' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/redhillonrails_core-.2.0/lib/redhillonrails_core/active_record/connection_adapters/table_definition.rb:6:in `class_eval' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/redhillonrails_core-.2.0/lib/redhillonrails_core/active_record/connection_adapters/table_definition.rb:6:in `included' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/redhillonrails_core-.2.0/lib/redhillonrails_core.rb:32:in `include' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/redhillonrails_core-.2.0/lib/redhillonrails_core.rb:32:in `<top (required)>' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-.0.2/lib/active_support/dependencies.rb:229:in `require' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-.0.2/lib/active_support/dependencies.rb:229:in `block in require' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-.0.2/lib/active_support/dependencies.rb:214:in `load_dependency' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-.0.2/lib/active_support/dependencies.rb:229:in `require' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/automatic_foreign_key-.3.0/lib/automatic_foreign_key.rb:5:in `rescue in <top (required)>' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/automatic_foreign_key-.3.0/lib/automatic_foreign_key.rb:1:in `<top (required)>' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-.3.5/lib/bundler/runtime.rb:72:in `require' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-.3.5/lib/bundler/runtime.rb:70:in `each' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-.3.5/lib/bundler/runtime.rb:70:in `block in require' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-.3.5/lib/bundler/runtime.rb:59:in `each' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-.3.5/lib/bundler/runtime.rb:59:in `require' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-.3.5/lib/bundler.rb:132:in require' 
from C:/Sites/nested/config/application.rb:7:in `<top (required)>' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-.0.2/lib/rails/commands.rb:74:in `require' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-.0.2/lib/rails/commands.rb:74:in `block in <top (required)>' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-.0.2/lib/rails/commands.rb:71:in `tap' 
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-.0.2/lib/rails/commands.rb:71:in `<top (required)>' 
from bin/rails:4:in `require' 
from bin/rails:4:in `<main>' 
+0

'automatic_foreign_key' был осужден его автором три года назад. https://github.com/mlomnicki/automatic_foreign_key#schemaplus---new-and-better-automatic_foreign_key Вы, вероятно, не должны его использовать. – sevenseacat

ответ

0

попробовать это

C:\Sites\nested>gem install --local automatic_foreign_key 

, а также bundle install --local в терминале проекта, а затем редактировать gem "automatic_foreign_key", "~> 1.3.0" в файле гем

+0

следующая ошибка установить --local ОШИБКИ: При выполнении гема ... (Gem :: CommandLineError) Пожалуйста, укажите, по крайней мере одно название гема (например, камень построить GEMNAME) –

+0

После установки в локальной системе, вы можете добавьте 'bundle install --local' в свой проектный терминал. –

+0

Команда не выполнялась! следующее сообщение об ошибке ОШИБКА: При выполнении гем ... (Gem :: CommandLineError) Пожалуйста, укажите, по крайней мере одно название гем (например, камень построить GEMNAME) –

1

FYI это ваша ошибка:

`alias_method': undefined method `to_sql' for class `ActiveRecord::ConnectionAdapters::Tab leDefinition' (NameError) 

Похоже драгоценный камень создает alias_method для .to_sql. Метод Алиас basicaly вызывает метод под другим именем, так что вы можете использовать его в различных контекстах

Мы используем alias_method :name, :title много, потому что мы стандартизировать наши валидации, означает, что мы должны иметь одни и те же имена методов каждый раз


ошибка

фактическая ошибка вызвана ваш класс не имея метод to_sql. Я никогда не сталкивался с этим, так I looked it up:

Кажется, что проблема причиненый на Rails 4. Что касается решения, я хотел бы предложить, что так automatic_foreign_key hasn't been updated since 2011, он будет несовместим с Rails 4

Если мы воспринимаем эту идею как проблему, может быть, вы могли бы подробно описать, как вы хотите, чтобы она работала & мы могли бы создать обход?

+0

, если его не поддерживает, понижает ли рельсы версия решит проблему? –

+0

Конечно, но это не тривиально - вы можете попробовать, если хотите, но лучше всего использовать последнюю версию –

Смежные вопросы