无法使用 mongoid_slug
Posted
技术标签:
【中文标题】无法使用 mongoid_slug【英文标题】:Unable to use mongoid_slug 【发布时间】:2012-08-14 20:24:08 【问题描述】:过去 10 天我正在使用 mongodb 学习 ROR。我无法在安装过程中进行 mongoid_slug 工作。请查看我在http://pastebin.com/Gtjzx3Xp 得到的信息
我有 gem mongoid (3.0.4, 3.0.1)。我的 Gemfile 看起来像:
source 'https://rubygems.org'
gem 'rails', '3.2.6'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem "mongoid", "~> 3.0.0"
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'execjs'
gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'mongoid_slug'
gem 'stringex'
那么,
$> bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Bundler could not find compatible versions for gem "mongoid":
In Gemfile:
mongoid_slug (>= 0) ruby depends on
mongoid (~> 2.0.0.beta7) ruby
mongoid (3.0.1)
我的控制器是:
class Post
include Mongoid::Document
include Mongoid::Slug
field :name, type: String
field :title, type: String
field :content, type: String
validates :title, :presence => true, :length => :minimum => 10
has_many :comments
slug :name
end
在网页上,当我运行时,我得到:
Routing Error
uninitialized constant Mongoid::Slug
Try running rake routes for more information on available routes.
mongoid_slug 是否不适用于当前版本的 mongoid?我怎样才能让它工作?
【问题讨论】:
【参考方案1】:RubyGems version of mongoid_slug 似乎已过时;那个人想要 Mongoid 2.0 (mongoid ~> 2.0
),这就是你的 bundle install
错误的来源。 GitHub version 似乎是 for Mongoid 3.0:
s.add_dependency 'mongoid', '~> 3.0'
所以你可以尝试在你的 Gemfile 中使用它:
gem 'mongoid_slug', :git => 'git://github.com/hakanensari/mongoid-slug.git'
使用 GitHub 版本。
【讨论】:
没错。我有同样的观察结果,我给哈坎发了电子邮件让他知道。正如他的 Git 版本所期望的 3.0.但是,在使用您的建议后,通过直接从 git 使用 gem,我看到安装错误消失了,但我仍然收到 Routing Error uninitialized constant Mongoid::Slug Try running rake routes 以获取有关可用路由的更多信息。 是的,我在运行 bundle show mongoid_slug 时得到 /usr/local/rvm/gems/ruby-1.9.3-p194/bundler/gems/mongoid-slug-8b5a112d8324 似乎有类似的问题github.com/hakanensari/mongoid-slug/issues/30 但建议的解决方案不适用于我的情况 @JVK:你在重新打包后重新启动了你的应用程序吗? 是的,我已经向 Hakan 发送了电子邮件,正在等待他的回复。【参考方案2】:这里最可能的答案是您的 mongoid_slug 版本太低。尝试在 Gemfile 中指定最新版本:
gem 'mongoid_slug', '0.10.0'
然后bundle update mongoid_slug
看看是否能解决问题。
【讨论】:
以上是关于无法使用 mongoid_slug的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 StorageClass 配置卷 - 无法获取存储帐户的存储密钥