小编Ste*_*fan的帖子

ruby包和十六进制值

半字节是四位.这意味着有16(2 ^ 4)个可能的值.这意味着半字节对应于单个十六进制数字,因为十六进制是基数16.字节是2 ^ 8,因此可以用2个十六进制数字表示,因此可以用2个半字节表示.

所以下面我有一个1字节的字符:

'一个'

那个角色是2 ^ 8:

 'A'.unpack('B*')
 => ["01000001"] 
Run Code Online (Sandbox Code Playgroud)

这意味着它应该由两个十六进制数字表示:

 01000001 == 41
Run Code Online (Sandbox Code Playgroud)

根据Ruby文档,对于Array方法包,当aTemplateString(参数)等于'H'时,它将返回一个十六进制字符串.但这就是我得到的回报:

['A'].pack('H')
 => "\xA0" 
Run Code Online (Sandbox Code Playgroud)

我的第一点是它不应该返回的十六进制值.它应该返回十六进制值41.第二点是半字节的概念,正如我上面解释的那样,意味着1个字节,它应该返回两个半字节.但在它上面插入一个0,因为它认为输入只有1个半字节,即使'A'是一个字节并且有两个半字节.很明显我在这里遗漏了一些东西.

ruby hex unpack decoding pack

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

没有条件的if-elsif在Ruby中没有正确分支

当我运行以下代码时:

if  
  puts "A"  
elsif  
  puts "B"  
end  
Run Code Online (Sandbox Code Playgroud)

我得到输出:

A
B
Run Code Online (Sandbox Code Playgroud)

为什么不警告或提出任何错误?为什么它会执行两个分支?

ruby if-statement

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

如何为外部迭代创建可“克隆”的枚举器?

我想通过nextis- cloneable为外部迭代创建一个枚举器,以便克隆保留当前的枚举状态。

举个例子,假设我有一个方法,它返回一个枚举数,它产生平方数

def square_numbers
  return enum_for(__method__) unless block_given?

  n = d = 1
  loop do
     yield n
     d += 2
     n += d
   end
end

square_numbers.take(10)
#=> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Run Code Online (Sandbox Code Playgroud)

我想枚举前 5 个平方数,并为每个值打印随后的 3 个平方数。一些无关紧要的事情each_cons

square_numbers.take(8).each_cons(4) do |a, *rest|
  printf("%2d: %2d %2d %2d\n", a, *rest)
end
Run Code Online (Sandbox Code Playgroud)

输出:

 1:  4  9 16
 4:  9 16 25
 9: 16 25 36
16: 25 36 49
25: 36 …
Run Code Online (Sandbox Code Playgroud)

ruby clone enumerator

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

如何在Ruby中解码RFC 2047编码的电子邮件头?

我有以下标题:

From: =?iso-8859-1?Q?Marta_Falc=E3o?= <marta.falcao@example.com.br>
Run Code Online (Sandbox Code Playgroud)

我可以轻松地将这些东西拆分出去<,这让我不知所措

"=?iso-8859-1?Q?Marta_Falc=E3o?="
Run Code Online (Sandbox Code Playgroud)

我可以用什么把它变成"Marta Falcão"

ruby encoding tmail

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

大虾错误"数据必须是可细胞对象的二维数组"

我正在使用Prawn生成PDF文档,但在尝试生成项目表时遇到上述错误.关于如何解决这个问题的任何想法?

应用程序/模型/ storage_request.rb

class StorageRequest < ActiveRecord::Base
  has_many :packages

  accepts_nested_attributes_for :packages, :allow_destroy => true
  attr_accessible :user_id, :state, :packages_attributes
end
Run Code Online (Sandbox Code Playgroud)

应用程序/模型/ package.rb

class Package < ActiveRecord::Base
  belongs_to :storage_request
  has_many :items

  accepts_nested_attributes_for :items, allow_destroy: true
  attr_accessible :user_id, :state, :items_attributes
end
Run Code Online (Sandbox Code Playgroud)

应用程序/模型/ item.rb的

class Item < ActiveRecord::Base
  belongs_to :package

  attr_accessible :name, :user_id
end
Run Code Online (Sandbox Code Playgroud)

应用程序/ PDF文件/ storage_request_pdf.rb

class StorageRequestPdf < Prawn::Document
  def initialize(storage_request, view)
    super(top_margin: 50)
    @storage_request = storage_request
    @view = view
    list_items
  end

  def list_items
    move_down 20
    text "Summary", size: 30, style: :bold, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails prawn

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

使用Prawn并尝试使用即时变量渲染图像的参数错误?

我对编程比较陌生,这是我的第一个问题,所以我们走了:

尝试使用prawn渲染图像时出现以下错误:

ArgumentError in PropertiesController#show

/uploads/property/image/1/DSC_1749.JPG not found

Rails.root: /Users/Guest/Code/list
Run Code Online (Sandbox Code Playgroud)

我的代码

class PropertyPdf < Prawn::Document

def initialize(property)
  super(top_margin: 70)
  @property = property
  building_heading
  spacing
  building_info
  spacing2
  offer
  spacing2
  offer2
end

def building_heading
  text "#{@property.building_name}", size: 30, style: :bold
  text "#{@property.comment}", size: 23, style: :italic
  building_photo = "#{@property.image_url}"
  image building_photo, height: 200, width: 200
end

end
Run Code Online (Sandbox Code Playgroud)

显示控制器中的相关部分:

respond_to do |format|
     format.html # show.html.erb
     format.json { render json: @property }
     format.pdf do
           pdf = PropertyPdf.new(@property)
           send_data pdf.render, type: "application/pdf",
                                 disposition: "inline"
     end …
Run Code Online (Sandbox Code Playgroud)

pdf ruby-on-rails image prawn

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

UTF-8 Ruby中的无效字节序列

我有这样的字符串"abce\xC3".sub("a","A"),当我执行该行时,我得到以下错误.

ArgumentError: invalid byte sequence in UTF-8
    from (irb):20:in `sub'
    from (irb):20
    from /home/vijay/.rvm/rubies/ruby-2.0.0-p598/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题.

ruby character-encoding ruby-2.0

3
推荐指数
2
解决办法
3293
查看次数

如果变量为nil,则赋值字符串,否则附加

我正在尝试缩短此代码:

if a.nil?
  a = "foo"
else
  a << "foo"
end
Run Code Online (Sandbox Code Playgroud)

a是一个nil或一个字符串.

我已经尝试了a ||= "foo",a += "foo"但如果a是这些则不起作用nil.

ruby ruby-on-rails

3
推荐指数
2
解决办法
1403
查看次数

用 Ruby/Rails 中字符串前面的多个空格字符替换行首

我正在尝试在字符串开头的新行中追加 10 个空格:

string = "\nHello"
Run Code Online (Sandbox Code Playgroud)

应改为:

"\n           Hello"
Run Code Online (Sandbox Code Playgroud)

尝试了以下和其他方式但徒劳无功

string.gsub!("\n", "\n(\s){10}")
#=> "\n( ){10}Hello"
Run Code Online (Sandbox Code Playgroud)

string.gsub!("\n", "\n[\s]{10}")
#=> "\n[ ]{10}Hello"
Run Code Online (Sandbox Code Playgroud)

ruby regex ruby-on-rails

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

逗号在RSpec的expect命令中做了什么?

鉴于此代码:

expect(exit_code).to eq(0), result
Run Code Online (Sandbox Code Playgroud)

我理解expect(exit_code).to eq(0)应该做什么,但我不明白逗号或result变量在做什么.有人可以为我阐明一下吗?

ruby rspec

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