我是红宝石的新人,所以请原谅我的愚蠢.
我有一个包含两列的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)
是否可以以相同的方式写回文件?
我想获得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) 我有几个包含复杂内容的PDF模板文件以及其中的几个空白区域/区域.我需要能够在这些空白区域中写入文本并将生成的PDF保存在文件夹中.
我搜索了这个问题的答案非常密集,但我找不到明确的答案.其中一个更好的解决方案是PDF :: Toolkit,但它需要购买Adobe Acrobat才能为现有PDF文档添加可替换属性.
PHP世界拥有FPDI,可用于简单地打开PDF文件并在现有内容上书写/绘制.这个库有一个Ruby端口,但它的最后一次提交发生在2009年初.此项目看起来并不像它被广泛使用和支持.
问题是:在现有PDF上编辑,编写或绘图的Ruby方式有哪些?
这个问题似乎也没有在这里回答.这些问题是相关的,但并不完全相同:
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/)没有运气的情况下更换琴弦.
有任何想法吗?
是否有更短的方法来做到以下(
@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.
我不喜欢上面提到的两件事
有没有更好的办法?
我正在寻找一个死的简单bin,我可以在shell中启动并让它服务于当前目录(最好不是..),可能还有一个-p用于指定端口.因为它应该是一个开发服务器,它应该默认只允许来自localhost的连接,也许有一个选项来指定其他方式.越简单越好.
不确定在这里使用哪些标签.
我正在实现一个包含一个集合的硬编码下拉列表的表单,我想知道什么是最好的解决方案,我知道两种方式暴露在工作之下,我仍然做如下:
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文件为空的最佳方法是什么?
File.size('test.rb') == 0看起来很难看.
在我的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(我来自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)