标签: ruby

如何将哈希保存到CSV中

我是红宝石的新人,所以请原谅我的愚蠢.

我有一个包含两列的CSV.一个用于动物名称,一个用于动物类型.我有一个散列,其中所有键都是动物名称,值是动物类型.我想在不使用fasterCSV的情况下将哈希写入CSV.我想到了几个最简单的想法..这里是基本的布局.

require "csv"

def write_file
  h = { 'dog' => 'canine', 'cat' => 'feline', 'donkey' => 'asinine' }

  CSV.open("data.csv", "wb") do |csv|
    csv << [???????????]
  end
end
Run Code Online (Sandbox Code Playgroud)

当我打开文件从中读取时,我打开它File.open("blabla.csv", headers: true) 是否可以以相同的方式写回文件?

ruby csv hash append

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

配置SubLime Linter插件以使用Ruby 1.9语法

我想获得SubLime Linter插件(https://github.com/Kronuz/SublimeLinter)来识别Ruby 1.9语法.有没有人能够在SublimeText 2中使用它?

这是我当前的默认设置文件:

/*
    SublimeLinter default settings
*/
{
    /*
        Sets the mode in which SublimeLinter runs:

        true - Linting occurs in the background as you type (the default).
        false - Linting only occurs when you initiate it.
        "load-save" - Linting occurs only when a file is loaded and saved.
    */
    "sublimelinter": true,

    /*
        Maps linters to executables for non-built in linters. If the executable
        is not in the default system path, or on posix systems …
Run Code Online (Sandbox Code Playgroud)

ruby sublimetext

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

如何使用Ruby编辑或编写现有PDF?

我有几个包含复杂内容的PDF模板文件以及其中的几个空白区域/区域.我需要能够在这些空白区域中写入文本并将生成的PDF保存在文件夹中.

我搜索了这个问题的答案非常密集,但我找不到明确的答案.其中一个更好的解决方案是PDF :: Toolkit,但它需要购买Adobe Acrobat才能为现有PDF文档添加可替换属性.

PHP世界拥有FPDI,可用于简单地打开PDF文件并在现有内容上书写/绘制.这个库有一个Ruby端口,但它的最后一次提交发生在2009年初.此项目看起来并不像它被广泛使用和支持.

问题是:在现有PDF上编辑,编写或绘图的Ruby方式有哪些?

这个问题似乎也没有在这里回答.这些问题是相关的,但并不完全相同:

ruby pdf-generation ruby-on-rails fpdi

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

编码:: UndefinedConversionError

Encoding::UndefinedConversionError - "\xC2" from ASCII-8BIT to UTF-8每次我尝试将哈希转换为JSON字符串时,我都会继续获取.我试着用[.encode | .force_encoding](["UTF-8" | "ASCII-8BIT" ]),链.encode.force_encoding,向后切换参数,但似乎没有任何工作,所以我抓住了错误是这样的:

begin
  menu.to_json
rescue Encoding::UndefinedConversionError
  puts $!.error_char.dump
  p $!.error_char.encoding
end
Run Code Online (Sandbox Code Playgroud)

菜单是续集的dataset.to_hash,内容来自MySQL DB,utf8_general_ci编码并返回:

"\ XC2"

<#Encoding:ASCII-8BIT>

无论我.encode/ .force_encoding我使用什么,编码都不会改变.我甚至试图在.gsub!(/\\\xC2/)没有运气的情况下更换琴弦.

有任何想法吗?

ruby encoding sinatra sequel

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

从ActiveRecord对象中提取两个属性的快捷方式?

是否有更短的方法来做到以下(

@user.employees.map { |e| { id: e.id, name: e.name } }
# => [{ id: 1, name: 'Pete' }, { id: 2, name: 'Fred' }]
Run Code Online (Sandbox Code Playgroud)

User has_many雇员.这两个类都继承自ActiveRecord::Base.

我不喜欢上面提到的两件事

  1. 它在映射之前将员工加载到内存中
  2. 这是冗长的(主观我猜).

有没有更好的办法?

ruby ruby-on-rails ruby-on-rails-3

36
推荐指数
3
解决办法
3万
查看次数

简单文件服务器为当前目录服务

我正在寻找一个死的简单bin,我可以在shell中启动并让它服务于当前目录(最好不是..),可能还有一个-p用于指定端口.因为它应该是一个开发服务器,它应该默认只允许来自localhost的连接,也许有一个选项来指定其他方式.越简单越好.

不确定在这里使用哪些标签.

ruby python shell perl node.js

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

Ruby/Rails中的类方法与常量

我正在实现一个包含一个集合的硬编码下拉列表的表单,我想知道什么是最好的解决方案,我知道两种方式暴露在工作之下,我仍然做如下:

class Example

  # Options for Example.
  self.options
    [ 'Yes', 'No', 'Not sure' ]
  end
end
Run Code Online (Sandbox Code Playgroud)

这被称为Example.options,但我知道也可以这样做:

class Example

  # Options for Example.
  OPTIONS = [ 'Yes', 'No', 'Not sure' ]
end
Run Code Online (Sandbox Code Playgroud)

这将被称为Example::OPTIONS.

问题是,这些中的任何一种都是好方法还是根本不重要?

ruby ruby-on-rails

36
推荐指数
3
解决办法
7359
查看次数

如何检查文件是否为空?

我有一个文本文件例如.检查Ruby文件为空的最佳方法是什么? File.size('test.rb') == 0看起来很难看.

ruby

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

Rails点而不是URL中的斜杠

在我的routes.rb我有:

get "projects/:category_id" => "projects#index"
Run Code Online (Sandbox Code Playgroud)

当我写projects_path(1)生成的URL /projects.1而不是/projects/1.你知道为什么会这样吗?这是输出rake routes:

 GET /projects/:category_id(.:format) projects#index
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

Ruby:正则表达式的过滤器数组?

对我来说,这是一个常见的,重复的习惯用法:使用正则表达式过滤数组,然后返回子数组.我的方法似乎不像Ruby(我来自Java).我最终有很多方法看起来很像这样.

什么是惯用的Ruby方法来改进这段代码?

def get_all_gifs(items_)
  output = Array.new
  filter = /\.jpg$/
  items_.each do |item|
    next if item =~ filter
    output << item
  end
  output
end
Run Code Online (Sandbox Code Playgroud)

ruby regex arrays filter

36
推荐指数
5
解决办法
4万
查看次数