小编And*_*rth的帖子

在自己内部调用方法是不好的做法吗?

我正在创建一个简短的程序来查找给定数字集的平均值.这是一个程序,其基本结构首先在TI-83上用goto语句编写,所以我对这种事情的正确实践有点不确定.这是有问题的代码:

$sum     = 0
$counter = 0

def average
  puts "Input another number, or \"end\" to end."
  input = gets.chomp
  if input == "end"
    puts $counter
    puts ($sum / $counter).to_f
  else
    $sum += input.to_f
    $counter += 1
    puts $counter
    average #Here the method is called again, repeating the cycle.
  end
end
Run Code Online (Sandbox Code Playgroud)

我不确定如何做到这一点,因为像这样构建的代码点是它可以处理不确定数量的输入,因此它重复性质.

ruby coding-style

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

初始化一个Array并在运行时接受参数

如何构建一个在运行时从用户接受多个值的数组?

例如,我们在c ++中有:

for(i=0;i<10;i++){ cin>>a[i]; }
Run Code Online (Sandbox Code Playgroud)

ruby arrays

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

覆盖Rails路由

在我的应用程序中,我有以下路线:

  namespace :partners do
    resources :cars
  end
Run Code Online (Sandbox Code Playgroud)

我的汽车索引是以下路线:

'localhost:3000/partners/cars/'

但我希望有这样的道路:

'localhost:3000/partners/all_cars/'

我怎样才能做到这一点?

routes ruby-on-rails ruby-on-rails-3.2 ruby-on-rails-4

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

在Ruby on Rails中@或不@

你为什么有时用@引用你的类属性,有时没有它?如果我要删除'@completed'并替换为'completed',则测试失败.但是在Project类中,tasks属性设置方式相同,但可以在没有@的情况下使用.

class Task
  attr_accessor :size, :completed

  def initialize(options = {})
    @completed = options[:completed]
    @size = options[:size]
  end

  def completed?
    @completed
  end

  def mark_completed
    @completed = true
  end
end


class Project
  attr_accessor :tasks

  def initialize
    @tasks = []
  end

  def done?
    tasks.reject(&:completed?).empty?
  end

  def total_size
    tasks.sum(&:size)
  end

  def remaining_size
    tasks.reject(&:completed?).sum(&:size)
  end
end


describe "estimates" do
    let (:project) { Project.new }
    let (:done) { Task.new(size: 2, completed: true) }
    let(:small_not_done) { Task.new(size: 1) }
    let(:large_none_done) { Task.new(size: 4) }

    before(:example) do
      project.tasks …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails

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

如何在 Ruby 中关闭 $stdout 和 $stderr

是否可以关闭 $stdout 和 $stderr 并且不将其重定向到文件;只需将其关闭,这样它就不会在任何地方打印任何内容?

我已经尝试过以下代码,但它只是错误error: Invalid argument

$stderr = IO.new(0,"w")
$stdout = IO.new(0,"w")
Run Code Online (Sandbox Code Playgroud)

ruby stdout stderr

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

哈希和价值观

我遇到了这个Ruby脚本:

frequency = Hash.new(0)
...
...
file.read.downcase.scan(/\b[a-z]{4,20}\b/){|word| frequency[word] =
frequency[word]+1}
Run Code Online (Sandbox Code Playgroud)

我无法理解的一点是 frequency[word] = frequency[word]+1

不会frequency[word]给我这个词匹配吗?我们怎样才能添加它1

ruby regex

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

Confluence REST API创建带有HTML内容的页面

我需要通过REST API创建一个融合页面。创建一个简单的页面是可行的,但是,如果我尝试向现有的HTML页面添加内容,则会收到http_response 400(错误请求)。

程式码片段:

confluence_page_content = File.open("local_html_report", "r").read
json_data = {
  "body" => {
    "storage" => {
    "representation" => "storage",
    "value" => "#{confluence_page_content}"
    }
  },
  "space" => {
   "key" => "#{test_parameters["confluence_space"]}"
  },
  "title" => "TestPageFromChef",
  "type" => "page"
}.to_json 
Run Code Online (Sandbox Code Playgroud)

ruby confluence

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

内插变量的字符串连接

以下代码长于推荐的80个字符.

我试图将其分解并用+运算符和<<运算符连接,但它似乎不起作用.我已经尝试过这种.to_s方法并将冒号移动到他们自己的字符串中但无济于事.

将此分成2行或3行而不会出现no method "+@":String错误的正确方法是什么?

string = "#{sprintf("%02i", hours)}:#{sprintf("%02i", minutes)}:#{sprintf("%02i", seconds)}"
Run Code Online (Sandbox Code Playgroud)

ruby string

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

从Ruby中的字符串执行代码?

我正在使用元数据方法来处理一些代码.假设以下是一个字符串:

if $bmi >= 18.5 && $bmi <= 24.9 then return 'healthy' elsif $bmi >= 25 && $bmi <= 29.9 then return 'overweight' elsif $bmi > 30 then return 'obese' end
Run Code Online (Sandbox Code Playgroud)

$ bmi被正确替换,但我希望代码执行.

ruby

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