小编qod*_*dot的帖子

rbenv无法更改全局ruby版本

我的Mac OS X有一个默认的ruby.

$ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]
Run Code Online (Sandbox Code Playgroud)

我安装了rbenv和ruby版本2.1.2.

$ rbenv versions
  system
* 2.1.2 (set by /Users/sdw/.rbenv/version)
Run Code Online (Sandbox Code Playgroud)

我试图将全局ruby版本设置为2.1.2,但没有任何反应.

$ rbenv global 2.1.2
$ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]
Run Code Online (Sandbox Code Playgroud)

所以我试着用命令做同样的事情sudo,但结果是一样的.

$ sudo rbenv global 2.1.2
$ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]
Run Code Online (Sandbox Code Playgroud)

如何将我的全局ruby版本更改为2.1.2?我从未安装过rvm或其他ruby版本管理系统.

ruby rbenv

13
推荐指数
4
解决办法
2万
查看次数

rails rspec update_all 方法适用于控制器,但不适用于 rspec

** 控制器

puts merchants.first.is_blocked // 1

Merchant.update_all( {:is_blocked => 0}, "mch_id IN (#{@merchants.map(&:mch_id).join(",")})" )

puts merchants.first.is_blocked // 0, so it works
Run Code Online (Sandbox Code Playgroud)

** 规格

expect {
  get :update_merchants, params
}.to change { merchant_1.is_blocked }.from(1).to(0)

// result should have been changed to 0, but is now 1
Run Code Online (Sandbox Code Playgroud)

我不知道为什么“update_all”方法在控制器中有效而在 rspec 中无效

rspec ruby-on-rails

3
推荐指数
1
解决办法
1324
查看次数

未定义的方法`add_foreign_key'

我在我的本地安装了一些项目git clone some_url,并且我确实bundle install将gems安装到我的本地.

并且我移植了克隆的数据库,rake db:migrate然后我收到了这条消息.

undefined method `add_foreign_key' for #<SomeMigrationFileName:0x0000000....> ...
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?


ps:这是MYSQL的问题吗?gem 'mysql2'语句已存在于我的Gemfile,但当我命令时bundle install,我在安装MYSQL期间收到安装错误消息.

所以我用mysql安装, brew install mysql

mysql ruby-on-rails

1
推荐指数
1
解决办法
2064
查看次数

标签 统计

ruby-on-rails ×2

mysql ×1

rbenv ×1

rspec ×1

ruby ×1