我在尝试安装Ruby mysql gem驱动程序时遇到了问题.
我最近升级到Snow Leopard并完成了MySQL的Hivelogic手动安装.这一切似乎工作正常,因为我可以从命令行访问mysql并对数据库进行更改.
我的问题是,如果我现在使用
rake db:migrate
Run Code Online (Sandbox Code Playgroud)
我明白了:
rake aborted!
uninitialized constant MysqlCompat::MysqlRes
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)
现在看来我的mysql gem工作不正常,因为我可以使用Python驱动程序(我编译到)从Python访问MySQL.因此,我尝试使用以下来自此站点的命令重建gem:http://techliberty.blogspot.com/,(顺便说一下,我使用的是最新的Intel MacBook Pro):
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Run Code Online (Sandbox Code Playgroud)
这个编译虽然我得到没有文档的定义:
Building native extensions. This could take a while...
Successfully installed mysql-2.8.1
1 gem installed
Installing ri documentation for mysql-2.8.1...
No definition for next_result
No definition for field_name
...
Run Code Online (Sandbox Code Playgroud)
当我的mysql_config位于正确的位置时,我有点难过:
/usr/local/mysql/bin/mysql_config
Run Code Online (Sandbox Code Playgroud)
我从我的系统中删除了mysql gem的所有其他实例.
任何建议将不胜感激.非常感谢.
PS我看到这个上一篇文章未初始化的常量MysqlCompat :: …
我在Ruby 1.9.2上有一个Rails 3rc应用程序工作正常,但Bundler在我的项目目录中不断创建一个名为"bandsintown"的文件夹(bandsintown是我使用的gem).据我所知,该文件夹中包含了我的所有宝石.我很确定这从未发生过.这是正常的行为吗?
我认为这可能会干扰运行测试.我得到一个"命令失败并显示状态(1)"错误,然后它几次提到"bandsintown"文件夹.
我觉得奇怪的是Bundler将文件夹命名为"bandsintown",即使我在gemfile中注释掉了这个gem.在那个文件夹中有一个"ruby"文件夹,在"ruby"文件夹中有一个"1.9.1"文件夹.当我使用1.9.2时,我不明白为什么它说1.9.1.1.9.1文件夹里面有bin,bundler,cache,doc,gems和specification文件夹.
我用所有相同的宝石制作了一个testapp并进行了捆绑安装.它不会创建一个包含所有宝石的新文件夹.
无论如何,我的应用程序工作正常,但我很感激,如果有人可以帮助我在这里.如果我遗漏任何需要知道的信息,请告诉我.谢谢.
我正在为远程存储文件的Rails应用程序添加测试.我正在使用默认的Rails功能测试.如何向他们添加文件上传?我有:
test "create valid person" do
post(:create, :person => { :avatar => fixture_file_upload('avatar.jpeg') })
end
Run Code Online (Sandbox Code Playgroud)
这由于某种原因上传a Tempfile并导致AWS/S3gem失败:
NoMethodError: undefined method `bytesize' for Tempfile
Run Code Online (Sandbox Code Playgroud)
他们是否可以ActionDispatch::Http::UploadedFile通过网络浏览器进行测试,以获得测试使用和执行更多的测试?是fixture_file_upload测试上传文件到控制器的方式吗?如果是这样,为什么它不像浏览器一样工作?
作为一个说明,我真的不想切换测试框架.谢谢!
如果要覆盖生成器模板(不替换生成器本身),在Rails 3中,您只需将文件放在lib/templates中相应命名的位置,Rails就会找到它们.
如果你想用宝石做这件事怎么办?我正在尝试采用我的团队的标准化脚手架格式并对其进行创建,以便我们可以在所有项目中共享它并轻松更新,而不是将文件复制到每个项目的lib /中.这适用于我创建新生成器的情况; 我用application.rb中的config.generators挂钩,然后Rails找到它.但是当我将模板文件放入gem中的lib/templates时,Rails首先找到它自己的默认模板,然后渲染它们而不是我的.我认为搜索顺序是RAILS_ROOT/lib/templates,RAILS_GEMS/lib/templates,OTHER_GEMS/lib/templates.
解决方案是什么?我在这方面找不到很多docco,并且通过Rails进行代码跳转没有提供明显的解决方案.谢谢!
好的,我刚刚在Windows 7上使用VirtualBox创建了一个全新的Ubuntu 11.04安装(不确定这是否重要但只是一个fyi)
列出我的红宝石我得到:
aaron@aaron-VirtualBox:~$ rvm list
rvm rubies
=> ruby-1.9.2-p290 [ x86_64 ]
Run Code Online (Sandbox Code Playgroud)
但后来尝试安装rails gem我得到了这个:
aaron@aaron-VirtualBox:~$ gem install rails
ERROR: Loading command: install (LoadError)
no such file to load -- zlib
ERROR: While executing gem ... (NameError)
uninitialized constant Gem::Commands::InstallCommand
aaron@aaron-VirtualBox:~$
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:
在做了Dylan说我的输出之后(为了证明这些库现在已经安装):
aaron@aaron-VirtualBox:~$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev
[sudo] password for aaron:
Reading package lists... Done
Building dependency tree
Reading …Run Code Online (Sandbox Code Playgroud) 我写了一个带有一定数量依赖关系的gem,其中一些我不想在捆绑到另一个项目时隐式需要.一个例子是uuidtools gem,我只想在使用它的文件中要求它.
gem.add_dependency("uuidtools",["=2.1.3"], :require => false)
Run Code Online (Sandbox Code Playgroud)
这种语法是错误的,因为:require => false在那里是意外的,但这或多或少总结了我想用它做什么.有人可以帮我吗?
当我跑步时,bundle install我得到了
An error occurred while installing libv8 (3.11.8.17), and Bundler cannot continue.
Make sure that `gem install libv8 -v '3.11.8.17'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)
Libv8是依赖lunchy和therubyracer宝石.
我锁定了我的Gemfile.locklibv8 gem3.11.8.17
但我发现我可以将它降级为 3.3.10.4
bundle install/update:libv8(therubyracer)安装失败(带有本机扩展)
怎么做?
我也找到了工作3.11.8.17宝石,但不知道如何在我的系统上实现它.
https://github.com/cowboyd/libv8/issues/107#issuecomment-26146673
我目前正在使用以下项目:
我试图运行,bundle install但不断收到以下错误:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
Run Code Online (Sandbox Code Playgroud)
和以下:
An error occurred while installing nio4r (1.0.0), and Bundler cannot continue.
Make sure that `gem install nio4r -v '1.0.0'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)
当我尝试跑步时gem install nio4r -v '1.0.0':
Building native extensions. This could take a while...
ERROR: Error installing nio4r:
ERROR: Failed to build gem native extension.
Run Code Online (Sandbox Code Playgroud)
当我尝试跑步时bundle update:
Please make sure you have the correct access rights
and the …Run Code Online (Sandbox Code Playgroud) 我决定用ubuntu 10.10重新开始.我开始安装git然后从git repo安装rvm.一切正常,我编译并安装ruby 1.8.7和ruby 1.9.2
gem也安装了我运行gem -v
但是当运行gem list或gem install rake时我得到以下错误
ERROR: Loading command: list (LoadError)
no such file to load -- zlib
ERROR: While executing gem ... (NameError)
uninitialized constant Gem::Commands::ListCommand
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题?我也试过sudo apt-get install zlib1g zlib1g-dev build-essential libpq-dev没有运气
我正在尝试在我的gem文件中指定thrift gem的一个版本.
gem 'thrift', "~> 0.6.0"
Run Code Online (Sandbox Code Playgroud)
当我试图运行时bundle install,我收到此错误:
You have requested:
thrift ~> 0.6.0
The bundle currently has thrift locked at 0.5.0.
Try running `bundle update thrift`
Run Code Online (Sandbox Code Playgroud)
如何找出导致它被锁定在早期版本的原因?它是否符合我在gem文件中列出的另一个gem的要求?
或者它只是由安装版本为0.5.0引起的,并且在gem文件中指定版本不会更新已安装的gem?