当我运行'rails g'时,我收到此错误(我的应用似乎运行正常,但我需要使用生成器):
/home/love/mongodb.roger/.bundler/ruby/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/methods.rb:113:in `constantize': uninitialized constant Rack::Mongoid (NameError)
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/methods.rb:112:in `each'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/methods.rb:112:in `constantize'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:14:in `klass'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:33:in `build'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `build'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:209:in `inject'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `each'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `inject'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `build'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:162:in `build_middleware_stack'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application/finisher.rb:35
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `instance_exec'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `run'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:50:in `run_initializers'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `each'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `run_initializers'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:134:in `initialize!'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:77:in `send'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing'
from /home/love/mongodb.roger/config/environment.rb:7
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:103:in `require_environment!'
from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/commands.rb:16
from script/rails:6:in `require'
from script/rails:6
Run Code Online (Sandbox Code Playgroud)
我使用1.8.7(但是当我使用1.9.x和RVM时我也会收到此错误).
ruby -v
ruby …Run Code Online (Sandbox Code Playgroud) 我有以下内容:
class Email
include ::Mongoid::Timestamps
include ::Mongoid::Document
field :email_address, :type => String
field :user_id, :type => Integer
field :campaign, :type => String
field :stream, :type => String
field :component, :type => String
embeds_many :actions
end
Run Code Online (Sandbox Code Playgroud)
并且rails抱怨它无法找到字段方法定义.有人知道为什么吗?
我想在我的应用程序中添加标记工具.所以,我正在使用acts_as_taggable_on:https://github.com/mbleigh/acts-as-taggable-on
我添加了以下行我的Gemfile:
gem 'acts-as-taggable-on', '~> 2.2.2'
Run Code Online (Sandbox Code Playgroud)
当我在我的用户模型中添加以下行时:
acts_as_taggable_on
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
undefined local variable or method `acts_as_taggable_on' for User:Class
Run Code Online (Sandbox Code Playgroud)
请告诉我,我做错了什么?
我正在使用MongoDB和PHP来存储用户通过基本表单添加的歌曲.我创建的集合如下所示.
$object = array(
"trackName" => "Sju sorger",
"artistName" => "Veronica Maggio",
"albumName" => "Satan i Gatan",
);
$collection->save($object);
Run Code Online (Sandbox Code Playgroud)
我想要完成的是检查一首歌是否已经在该集合中.如果试图添加的歌曲用户尚未加入该集合,则会添加该歌曲.如果它已经在集合中,则将显示声明该歌曲已在该集合中的通知.
我是MongoDB的新手,但我想我可以通过检查文档的_id来检查歌曲是否已经在集合中.但我不知道如何实现这一目标.
任何帮助将非常感激.
我遇到了麻烦,尝试使用CarrierWave在Rails 3中开发的文件上传Rest API,使用MongoDB数据库.
我想要做的是使用MongoDB系统GridFS存储一些文件(不仅是图像,而且是每种文件格式).我阅读了许多建议我使用CarrierWave gem的文档.
但是当我尝试配置它时出错.
我的开发环境:Gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.8'
# MongoDB
gem 'mongoid', :git => 'git://github.com/mongoid/mongoid.git'
gem 'carrierwave', :git => "git://github.com/jnicklas/carrierwave.git"
# gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid'
gem 'mini_magick', :git => 'git://github.com/probablycorey/mini_magick.git'
gem 'bson_ext'
gem 'json'
Run Code Online (Sandbox Code Playgroud)
application.rb:
require File.expand_path('../boot', __FILE__)
# ActiveRecord will not be use with MongoDB
# require 'rails/all'
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"
require "sprockets/railtie"
require "mongoid/railtie"
require "carrierwave"
# require "carrierwave/mongoid"
Run Code Online (Sandbox Code Playgroud)
我用mongoid.yml(config/mongoid.yml)文件定义数据库:
development:
sessions:
default:
database: lf_rest_api_development
hosts:
- localhost:27017 …Run Code Online (Sandbox Code Playgroud) 我有两个Mongoid文档,FirstType文档和SecondType文档数组.两者都嵌入了User.
user.first_types = [#<FirstType _id: 51a10b4883c336ebef0002a8, created_at: 2013-05-25 19:04:40 UTC, updated_at: 2013-05-25 19:04:40 UTC, datetime: 2013-03-28 15:03:22 UTC, text: "Hello 1">]
user.second_types = [#<SecondType _id: 51a6058783c3368a62000003, created_at: 2013-05-29 13:41:27 UTC, updated_at: 2013-05-29 13:41:27 UTC, datetime: 2013-05-29 08:23:27 UTC, text: "Hello 2">]
Run Code Online (Sandbox Code Playgroud)
然后我将它们与这行代码合并:
all_types = user.first_types+user.second_types
Run Code Online (Sandbox Code Playgroud)
我现在希望按属性排序all_types数组datetime(最新的datetime,所以SecondType对象应该是第一个).
我已经尝试过传统的Mongoid和Ruby数组方法,但是当我混合使用Mongoid文档时它们似乎不起作用.有任何想法吗?
Google搜索使我想到一些问题,希望同时使用Mongoid和activerecord。我已经看到了很多关于木乃伊的问题和很多关于ActiveRecord的问题,但是都没有将它们进行比较。
我想问题是,与用于MySQL的activerecord一起运行带有针对mongoid db的rails的mongoid适配器有什么好处?
我正在尝试将数百万行从另一个数据库导入MongoDB.我的常规用于导入
MyModel.collection.insert(data_to_import)
Run Code Online (Sandbox Code Playgroud)
我明白了
NoMethodError: undefined method `insert' for #<Mongo::Collection:0x000000082bb990>
/home/mika/projects/ca2/lib/tasks/data.rake:36:in `block (2 levels) in <top (required)>'
/home/mika/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `eval'
/home/mika/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `<main>'
Run Code Online (Sandbox Code Playgroud)
该模型定义为
class MyModel
include Mongoid::Document
include Mongoid::Attributes::Dynamic
end
Run Code Online (Sandbox Code Playgroud)
有没有人对正在发生的事情有任何建议?
我可以逐行保存行,但这对于数百万行来说效率很低.想要插入工作.
嗨,当我尝试继续出错以插入许多它在 mongoid 中不起作用时。
我设置了以下唯一索引
db.push_notifications.createIndex({ actor_vid: 1,campaign_id: 1 },{ unique: true, partialFilterExpression: { campaign_id: { $exists: true } } })
PushNotification.collection.insert_many([{:campaign_id => "1",:actor_vid => 9},{:campaign_id => "1",:actor_vid => 8}],:continue_on_error => true,:safe =>错误的)
PushNotification.collection.insert_many([{:campaign_id => "1",:actor_vid => 9},{:campaign_id => "1",:actor_vid => 10}],:continue_on_error => true,:safe =>假)抛出
Mongo::Error::BulkWriteError: Mongo::Error::BulkWriteError
来自 /home/deploy/.bundler/notification_service/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/bulk_write/result.rb: 184:in validate!'
from /home/deploy/.bundler/notification_service/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/bulk_write/result_combiner.rb:73:inresult' from /home/deploy/.bundler/notification_service/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/bulk_write.rb:65:in execute'
from /home/deploy/.bundler/notification_service/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/collection.rb:385:inbulk_write' from /home/deploy/。 bundler/notification_service/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/collection.rb:363:in insert_many'
from /home/deploy/.bundler/notification_service/ruby/2.2.0/gems/mongoid-5.1.3/lib/mongoid/query_cache.rb:168:ininsert_many_with_clear_cache' from (irb):133 from /home/deploy/.bundler/notification_service/ruby/ 2.2.0/gems/railties-4.2.6/lib/rails/commands/console.rb:110:in start'
from /home/deploy/.bundler/notification_service/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands/console.rb:9:instart' from /home/deploy/.bundler/notification_service/ruby/2.2.0/gems/railties-4.2。 6/lib/rails/commands/commands_tasks.rb:68:inconsole'
from …
我是 Ruby/Rails 的新手,我想覆盖该save方法,这样我就可以在调用实际save方法之前对自己进行一些检查,但是,由于某种原因,我收到了此异常:
#<NoMethodError: undefined method `save' for true:TrueClass>
Run Code Online (Sandbox Code Playgroud)
这是我的模块和类的代码。
模块:
module OverrideSave
def save
super.save if some_condition_true
end
end
Run Code Online (Sandbox Code Playgroud)
班级:
class CardTransaction
include Mongoid::Document
include Mongoid::Timestamps::Created
prepend OverrideSave
field :type, type: String
field :transaction_value, type: BigDecimal
field :receipt_value, type: BigDecimal
field :store_id, type: String
belongs_to :card
end
Run Code Online (Sandbox Code Playgroud)
我不确定出了什么问题,有什么想法吗?
我有这个字符串:'industry.in'我想将其转换为:industry.in.当我这样做时'industry.in'.to_sym,结果是::"industry.in".
任何人都知道如何进入::industry.in相反?
我这样做,所以我可以在Mongoid中为数组字段进行条件查询:
criteria = 'industry.in'.to_sym
Company.where(criteria => ['Information Technology'])
Run Code Online (Sandbox Code Playgroud) 当对/ cloth/create进行POST时,我得到一个警告:无法批量分配受保护的属性:title,description,cloth_type,pic
cloth.rb
class Cloth
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes attr_accessible :pics
field :title
field :description
field :cloth_type
belongs_to :seller
has_many :pics
attr_accessible :pic_attributes
accepts_nested_attributes_for:pics
end
Run Code Online (Sandbox Code Playgroud)
pic.rb
class Pic
include Mongoid::Document
include Mongoid::Paperclip
has_mongoid_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" },
:storage => :cloud_files,
:cloudfiles_credentials => "#{Rails.root}/config/rackspace.yml",
:path => ":attachment/:id/:timestamp_:style.:extension"
belongs_to :cloth
attr_accessible :cloth_attributes
def create
@cloth = Cloth.create!(params[:cloth])
end
end
Run Code Online (Sandbox Code Playgroud) mongoid ×12
mongodb ×5
ruby ×5
activerecord ×1
arrays ×1
carrierwave ×1
gridfs ×1
php ×1
rack ×1
sorting ×1