我正在开发我的第一个Rails引擎.这是一个包含资产和基本功能的管理面板布局.
我真正想要的是它基于Twitter Bootstrap + SASS.
如果我在我的引擎的gemspec文件中只有这些行:
gem.add_dependency "railties", "~> 3.2"
gem.add_dependency "sass-rails"
gem.add_dependency "bootstrap-sass"
Run Code Online (Sandbox Code Playgroud)
尝试访问页面时出现此错误:
ActionView::Template::Error (couldn't find file 'bootstrap'
(in /Users/swamiatma/Documents/Dropbox/coding/ruby/gems/tkh_admin_panel/app/assets/javascripts/admin.js:9)):
Run Code Online (Sandbox Code Playgroud)
但是,如果我将其添加到主机应用程序gemfile:
gem 'bootstrap-sass'
Run Code Online (Sandbox Code Playgroud)
所以我得到以下几行:
group :assets do
gem 'jquery-rails'
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
gem 'bootstrap-sass'
end
Run Code Online (Sandbox Code Playgroud)
它现在工作正常.我认为这个依赖项严格属于Rails引擎gem,应该就在那里.
是什么赋予了?
的Gemfile:
source "http://rubygems.org"
gem "nokogiri", :git => "git://github.com/tenderlove/nokogiri.git"
Run Code Online (Sandbox Code Playgroud)
运行时bundle,会发生以下错误:
Fetching git://github.com/tenderlove/nokogiri.git
Unfortunately, a fatal error has occurred. Please see the Bundler troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.4/lib/bundler/source.rb:592:in ``': No such file or directory - git clone "git://github.com/tenderlove/nokogiri.git" "C:/Ruby193/lib/ruby/gems/1.9.1/cache/bundler/git/nokogiri-d4bf05cb9e65f144f074351e5ebe3a0e44c00952" --bare --no-hardlinks (Errno::ENOENT)
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
它不仅可以与这颗宝石重现,还可以与其他宝石重现:黄瓜,水豚
我用的是Windows.
我在gemspecs中看到了很多这样的东西:
s.add_dependency 'some_gem', '~> 1.5.0'
Run Code Online (Sandbox Code Playgroud)
什么〜>是什么意思?
在我的ruby脚本中,我需要gmail gem:
require 'rubygems'
require 'gmail'
在shell中运行时,它运行正常:
ruby my-script.rb
当我把它放在一个cron作业时,它无法执行:
* * * * * cd /to/script/directory;/usr/local/rvm/rubies/ree-1.8.7-2011.03/bin/ruby ./my-script.rb
日志显示无法加载gmail gem:
/usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require': no such file to load -- gmail (LoadError)
好吧,当我这样做时(把cmd放在bash -l -c'CMD'中):
* * * * * /bin/bash -l -c 'cd /to/script/directory;/usr/local/rvm/rubies/ree-1.8.7-2011.03/bin/ruby ./my-script.rb'
它再次正常工作.
为什么?
ps.I知道arg -l使bash成为登录shell,但这有什么区别?
我有一个名为"Backend"的Rails 3.2引擎(可安装).
Ruby平台是JRuby 1.7.0(1.9.3p203).
我还有一个Rails 3.2应用程序(称为my_app),其中Gemfile包含:
gem 'backend', :path => "/home/jacob/projects/backend"
Run Code Online (Sandbox Code Playgroud)
我在my_app的根目录下执行"bundle install"并收到以下错误:
"无法在/ home/jacob/projects/backend的源代码中找到gem'backend(> = 0)java'.源代码不包含任何版本的'backend(> = 0)java'"
backend.gemspec:
$:.push File.expand_path("../lib", \__FILE__)
require "backend/version"
Gem::Specification.new do |s|
s.name = "Backend"
s.version = Backend::VERSION
s.authors = [""]
s.email = [""]
s.homepage = ""
s.summary = ""
s.description = ""
s.files = Dir["{app,config,db,lib}/\**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
s.test_files = Dir["test/**/*"]
end
Run Code Online (Sandbox Code Playgroud) 有没有办法安装宝石,bundle install因此它们不会安装在ruby文件夹中,而是安装在项目的文件夹中?(我会在上面使用.gitignore)
有没有办法只为一些宝石做这个?
我正在尝试在Debian 6上做一个gem install therubyracer.我在1.9.3上使用rbenv.当我最初这样做时,它抱怨了libv8,所以我做了一个gem install libv8.现在,当我运行gem install therubyracer时,我收到以下错误,说它无法找到该文件.它正在讨论的文件是/home/chop/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.3-x86_64-linux/vendor/v8/out/然而,x64.release/obj.target/tools/gyp/libv8_base.a确实存在.
hop@fev-temp:~$ gem install therubyracer
Building native extensions. This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
/home/chop/.rbenv/versions/1.9.3-p327/bin/ruby extconf.rb
checking for main() in -lpthread... yes
creating Makefile
make
compiling stack.cc
compiling accessor.cc
compiling constants.cc
compiling heap.cc
compiling init.cc
compiling primitive.cc
compiling signature.cc
compiling date.cc
compiling locker.cc
compiling exception.cc
compiling gc.cc
compiling script.cc
compiling external.cc
compiling v8.cc
compiling object.cc
compiling trycatch.cc
compiling context.cc
compiling string.cc
compiling value.cc …Run Code Online (Sandbox Code Playgroud) 我有3个模型,如用户模型,书籍模型和作者模型.
我想实现一个功能,用户可以将书籍或作者的记录作为他们的最爱.
有这么好的宝石吗?
我不打算独自制作.
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Could not find gem 'rmagick v 2.13.1 (>= 0) x86-mingw32' in the gems available o
n this machine.
Run Code Online (Sandbox Code Playgroud)
嗨,我在运行bundle install时收到消息,下面是我的gemsfile
source 'https://rubygems.org'
gem 'rails', '3.2.6'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
gem 'carrierwave'
gem 'rmagick v 2.13.1'
# 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' …Run Code Online (Sandbox Code Playgroud) 此查询引发错误:
EncodingPreset.where('default = ?', false)
ActiveRecord::StatementInvalid: PG::Error: ERROR: syntax error at or near "default"
LINE 1: ...coding_presets".* FROM "encoding_presets" WHERE (default = ...
^
: SELECT "encoding_presets".* FROM "encoding_presets" WHERE (default = 'f')
Run Code Online (Sandbox Code Playgroud)
但这有效:
EncodingPreset.where(:default => false)
Run Code Online (Sandbox Code Playgroud)
为什么第一个查询不起作用?
版本:
ruby-1.9.3-p194
activerecord-3.2.11
Run Code Online (Sandbox Code Playgroud)