小编Bra*_*don的帖子

在我的mac上更新gem - 安装了两个版本的bundler

我在RVM之前和之后安装了我的本地机器上的大量宝石,所以我决定将它们全部擦除并重新安装.一切似乎都没问题,除了捆绑:

gem list
.....
bundler (1.1.3, 1.0.22)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么1.0.22仍然存在,我无法弄清楚如何摆脱它!

$ gem cleanup
  Cleaning up installed gems...
  Attempting to uninstall bundler-1.0.22
  Unable to uninstall bundler-1.0.22:
    Gem::InstallError: gem "bundler" is not installed
  Clean Up Complete

$ gem uninstall bundler-1.0.22
  INFO:  gem "bundler-1.0.22" is not installed
Run Code Online (Sandbox Code Playgroud)

更新1 安德鲁要求的路径信息

/Users/brandon/.rvm/gems/ruby-1.9.3-p125-perf@global/gems/bundler-1.0.22/
Run Code Online (Sandbox Code Playgroud)

ruby rubygems bundler

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

无法在RSpec/Rails中存根类方法(并在存根上使用动态返回)

晚上好,

我正在尝试在我的"Simulation"类中测试一个相当长的方法,该类调用类方法"is_male_alive?" 和"is_female_alive?" 在我的"年龄"课上几百次.这些类方法的返回值基于统计信息,我想将它们存根以返回特定值,以便我的测试每次都运行相同.

Age.rb:

...

def is_male_alive?(age)
  return false if age > 119
  if (age < 0 || age == nil || age == "")
    return false
  end    
  death_prob = grab_probability_male(age)
  rand_value = rand
  rand_value > death_prob
end

...
Run Code Online (Sandbox Code Playgroud)

(女性版本与一些不同的常量基本相同)

在我的"模拟"课程中,我执行以下操作:

def single_simulation_run

  ...
  male_alive = Age.is_male_alive?(male_age_array[0])
  female_alive = Age.is_female_alive?(female_age_array[0])
  ...
end
Run Code Online (Sandbox Code Playgroud)

在模拟的每次迭代中 - 基本上它只是传递一个年龄(例如is_male_alive?(56))并返回true或false.

我想删除这两种方法,以便:

  1. is_male_alive?对于小于75的任何参数,返回true,否则返回false
  2. is_female_alive?对于小于80的任何参数,返回true,否则返回false

我已经尝试了以下内容,看看我是否有能力将其存根(simulation_spec.rb):

Age.should_receive(:is_male_alive?).exactly(89).times
results = @sim.send("generate_asset_performance")
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

 Failure/Error: Age.should_receive(:is_male_alive?).exactly(89).times
   (<Age(id: integer, age: integer, male_prob: decimal, female_prob: decimal) (class)>).is_male_alive?(any args)
       expected: 89 times …
Run Code Online (Sandbox Code Playgroud)

testing rspec ruby-on-rails mocking stubbing

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

为什么rails-api返回500内部服务器错误而不是404?

使用rails-api:

  def show
    render json: Room.find(params[:id])
  end
Run Code Online (Sandbox Code Playgroud)

这在找到资源时有效.但是寻找一个不存在的返回500错误.这不应该归还404吗?

> http --json GET chat.dev/api/v1/rooms/23
HTTP/1.1 500 Internal Server Error
Connection: close
Content-Type: text/plain; charset=utf-8
X-Request-Id: 4cd2ba9f-0f85-4530-9c0a-0ef427ac5b31
X-Runtime: 0.094633

ActiveRecord::RecordNotFound at /api/v1/rooms/23
================================================

> Couldn't find Room with id=23

app/controllers/api/v1/rooms_controller.rb, line 20
---------------------------------------------------

``` ruby
   15         #     render :json => {}, :status => :not_found
   16         #   end
   17         # end
   18   
   19         def show
>  20           render json: Room.find(params[:id])
   21         end
   22   
   23       end
   24   
   25     end    
Run Code Online (Sandbox Code Playgroud)

api ruby-on-rails http-status-code-404 rails-api

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

OpenShift的Bash脚本 - 不可读(||,[ - f pidfile])

我已经用Ruby完成了所有的学习,现在正在深入研究OpenShift的Bash脚本深度.每个命令在做什么都不太明显......

有人可以向我解释以下内容:

[ -f ${OPENSHIFT_DATA_DIR}redis.pid ] || ${OPENSHIFT_DATA_DIR}redis/bin/redis-server ${OPENSHIFT_DATA_DIR}redis/bin/redis.conf
Run Code Online (Sandbox Code Playgroud)

第二部分显然是redis-server使用redis.conf配置运行二进制文件.但是我不确定||完成了什么,或者是什么[ -f $SOME_PID_FILE ]

帮助赞赏!

bash shell openshift

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

Rails has_many:为什么create_model不起作用?

我想我在这里错过了一些简单的东西......但是无法弄明白.

class User < ActiveRecord::Base
  attr_accessible :name, :email, :password, :password_confirmation, :remember_me
  has_many :events
end

class Event < ActiveRecord::Base
  attr_accessible :start, :end, :all_day, :url
  belongs_to :user
end

u1 = User.create name: "Bob", email: "bob@what.com", password: "asdfasdf"
u1.create_event(start: 3.days.from_now)
Run Code Online (Sandbox Code Playgroud)

- >

undefined method `create_event' for #<User:0x007f918cbbf7b8>
Run Code Online (Sandbox Code Playgroud)

然而,

u1.events << Event.create!(start: 3.days.from_now)
Run Code Online (Sandbox Code Playgroud)

作品!

ruby-on-rails associations has-many ruby-on-rails-3

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