使用Rails和Gemfile无法正确安装Gem的分支

时间:2011-01-20 12:24:25

标签: ruby-on-rails ruby rubygems

初始问题

我在Rails项目中使用yaml_db,但似乎默认分支在布尔记录方面存在一些问题。现在我知道有一个branch on github that has a fixed version

我更改了我的Gemfile,以便安装此分支而不是默认的yaml_db

gem 'yaml_db', :git => "https://github.com/robsharp/yaml_db.git"

我运行bundle install并显示:

  

使用https://github.com/robsharp/yaml_db.git的yaml_db(0.2.0)(在主人身上)。

     

您的捆绑已完成!它被安装到/Users/user/.rvm/gems/ruby-1.9.2-p0

精细。现在固定的file in the Git repository 应该在lib/serialization_helper.rb中包含此行

record[column] = convert_boolean(record[column])

然而,当我查看我的本地文件.rvm/gems/ruby-1.9.2-p0/bundler/gems/yaml_db-ca178cfb59cf/lib/serialization_helper.rb时,它仍会显示未修补的旧行

record[column] = (record[column] == 't' or record[column] == '1')

很好,似乎我的本地文件没有改变。


Gem未正确安装

正在运行gem list根本不会向我显示yaml_db。我删除了Gem lockfile并再次安装了bundle,但我的Gem列表中仍然没有yaml_db。当然,运行gem install yaml_db只会安装损坏的版本。


手动安装

我现在尝试从Git源手动安装。

git clone https://github.com/robsharp/yaml_db.git
cd yaml_db
git checkout -b fix_boolean_checks_to_support_oracle

但是,serialization_helper.rb文件未正确更新。我只是手动更改它并构建了Gem。现在一切都很好。

我的新问题:为什么不查看正确的文件?

1 个答案:

答案 0 :(得分:1)

如果您运行gem list yaml_db并在括号中查看多个版本,请在Gemfile中定义所需的版本,如此

gem 'yaml_db', '~> 0.2.0', :git => "https://github.com/robsharp/yaml_db.git"

我遇到了类似的问题,发现Gemfile.lock文件存储了我的旧版本而未更新版本,并将其用于我的项目。