我正在使用ruby 1.9.2并且还使用它的csv库.我想正确编写csv
像这样
name,country_code,destination,code
Afghanistan,93,Bamain,51
Afghanistan,93,Bamain,52
Afghanistan,93,Bamain,53
Afghanistan,93,Parwan,91
Run Code Online (Sandbox Code Playgroud)
我的代码是这样的
def export_data
@coun = Country.all(:limit => 10)
header = "name,country_code,destination,code"
file = "my_file.csv"
File.open(file, "w") do |csv|
csv << header
@coun.each do |c|
csv << [c.name, c.country_code, c.user_id, c.subscriber_id]
# How puts line break here
end
end
send_file(file)
end
Run Code Online (Sandbox Code Playgroud)
我上面已经提到过如何将我的行放在CSV文件中并且也省略了这个叹息
用CSV"[]"覆盖每一行
Like ["Finland",1,1,2334]
Run Code Online (Sandbox Code Playgroud)
提前致谢..
在 Emacs Prelude 中,当存在与文件名“匹配”的文件时,我无法弄清楚如何创建新文件。
在示例屏幕截图中,我尝试spawn.exs在已包含名为 的文件的目录中创建一个名为 的文件spawn_basic.exs。当我用来C-xC-f创建新文件时,emacs 在打开时匹配spawn.exs并spawn_basic.exs命中Enter结果,spawn_basic.exs而不是创建spawn.exs.
我尝试了一些解决方法(即使用touch创建文件),但我正在寻找一种更简单的解决方案,只需要一个命令。如果没有命令可以执行此操作,是否有办法禁用 Prelude 中的文件名匹配功能?与普通的 Emacs 相比,我最喜欢 Prelude 的其他所有内容,所以我不想再切换回来。
我按照Marketo网站上的" 快速入门指南"了解他们的REST API.这很顺利.我能够从他们的网站获得成功的回复.
请求:
curl https://ABC-DEF-123.mktorest.com/rest/v1/lists.json?access_token=123:ab
Run Code Online (Sandbox Code Playgroud)
响应:
{"requestId":"123#abcf7aff","result":[],"success":true}
Run Code Online (Sandbox Code Playgroud)
但是,当我第二天尝试同样的请求时,我收到了:
{"requestId":"123#abc6731ab6f","success":false,"errors":[{"code":"601","message":"Access token invalid"}]}
Run Code Online (Sandbox Code Playgroud)
我登录到Marketo管理员,发现我从对话框中复制并粘贴的令牌不同.我尝试了这个新的,它工作.
(这取自指南)

我在他们的网站上遇到了另一个描述不同身份验证过程的指南.Marketo身份验证指南
本指南提到从API端点返回的令牌已过期,因此我怀疑所有Marketo令牌都会过期(或者我需要禁用此功能).但是,我无法使用我的客户端ID和客户端密钥成功向此端点发出请求.
请求:
curl https://ABC-DEF-123.mktorest.com/identity/oauth/token?grant_type=client_credentials&client_id=ACLIENTID&client_secret=ACLIENTSECRET
Run Code Online (Sandbox Code Playgroud)
响应:
{"error":"unauthorized","error_description":"An Authentication object was not found in the SecurityContext"}
Run Code Online (Sandbox Code Playgroud)
任何正确方向的帮助将不胜感激.提前致谢.