Ответ 1
Добавьте это в блок приложения в config/application.rb:
config.generators do |g|
g.orm :active_record
end
(найденное решение здесь)
В моем приложении rails есть собственная база данных MySql (и требуется камень mysql2), но также необходимо подключиться к внешней базе данных MongoDB для одной конкретной модели (и поэтому я включил mongoid и bson_ext в Gemfile). Теперь, когда я пытаюсь создать миграцию для новой модели, она сообщает мне, что
$ rails g migration CreateLocations
error mongoid [not found]
Когда я создал модель Location, она включала Mongoid:: Document, поэтому Rails, очевидно, думает, что использует внешнюю базу данных в качестве моего основного хранилища данных.
databse.yml:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: associalize_development
pool: 5
username: root
password:
socket: /tmp/mysql.sock
mongoid.yml:
development:
host: pearl.mongohq.com
port: 27019
username: asfasdf
password: sadfasdf
database: app4574678
test:
host: pearl.mongohq.com
port: 27019
username: asdfadhasdfa
password: hadsadfas
database: app4574678
production:
host: pearl.mongohq.com
port: 27019
username: asdfdfsasda
password: afdasdfdasdf
database: app4574678
UPDATE Модель, использующая Mongo
class ExternalMongoModel
include Mongoid::Document
field :title
field :long_title
field :deal_type
field :merchandise_type
field :market_id
field :market_name
field :market_location, type: Array
field :featureType
field :country_code
field :subtitle
field :offer_ends_at
field :price
field :value
field :merchant_type
field :content
field :merchant
index(
[[:division_latlon, Mongo::GEO2D]], background: true
)
end
Добавьте это в блок приложения в config/application.rb:
config.generators do |g|
g.orm :active_record
end
(найденное решение здесь)
Если вы не хотите изменять config/application.rb, вы можете использовать это при создании модели:
rails generate active_record:migration
Если вы изменили файл application.rb, чтобы вызвать генератор mongoid, скажем, для "контактов" модели, можно использовать:
rails g mongoid:model contacts
Сначала проверьте, что нижний блок присутствует в файле config/application.rb в вашем приложении rails
config.generators do |g|
g.orm :active_record
end
Если не добавить, то вы можете запустить
rails g active_record:migration