我在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 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。现在一切都很好。
我的新问题:为什么不查看正确的文件?
答案 0 :(得分:1)
如果您运行gem list yaml_db
并在括号中查看多个版本,请在Gemfile中定义所需的版本,如此
gem 'yaml_db', '~> 0.2.0', :git => "https://github.com/robsharp/yaml_db.git"
我遇到了类似的问题,发现Gemfile.lock
文件存储了我的旧版本而未更新版本,并将其用于我的项目。