小编Ing*_*ngo的帖子

to_json没有将特殊字符转换为unicode样式

将哈希值转换为json字符串时,我遇到了特殊字符的问题.

使用Ruby 2.0/Rails 3.2.21,一切正常,也就是说,

puts "“".to_json
#"\u201c"
Run Code Online (Sandbox Code Playgroud)

但是使用Ruby 2.3.0/Rails 4.2.5.1我得到了

puts "“".to_json
#"“"
Run Code Online (Sandbox Code Playgroud)

有没有办法强制Ruby 2.3.0将特殊字符转换为unicode样式字符串(\uXXXX)?

备注:

请注意,在Ruby 2.3/Rails 4中,我们得到了

"“".to_json.bytesize == 5 #true
Run Code Online (Sandbox Code Playgroud)

但是,在2.0中我们得到了

"“".to_json.bytesize == 8 #true
Run Code Online (Sandbox Code Playgroud)

很明显,字符串本身是不同的,而不是不同的输出格式.

ruby json ruby-on-rails

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

正则表达式具有未知数量的参数的字符串

假设我在这种格式的文本文件中有数百万个字符串:

st=expand&c=22&t=button&k=fun HTTP
Run Code Online (Sandbox Code Playgroud)

这是一个字符串,我们可以看看与键的哈希st,c,tk.文本文件中的某些字符串可能没有给定的&KEY = VALUE,因此可能如下所示:

st=expand&k=fun HTTP
Run Code Online (Sandbox Code Playgroud)

如何使用sed将字符串更改为以下内容

expand,,,fun
Run Code Online (Sandbox Code Playgroud)

也就是说,即使认为key = value不存在,我们仍然添加一个逗号.我们可以假设我们有一个固定的密钥集[st,c,t,k].

我尝试的是类似的东西(只是一个想法!!)

sed 's/\(st=\|c=\|t=\|k=\)\([\(^\&\|HTTP\)])\(\&\|HTTP\)/\3,/g' big_file
Run Code Online (Sandbox Code Playgroud)

但显然,如果c不存在,则不会添加逗号,因为它找不到任何逗号.任何想法如何处理这个?使用awk也可以接受(或任何其他快速文本处理实用程序)

谢谢!


输入数据示例

st=expand&c=22&t=button&k=fun HTTP
c=22&t=button&k=fun HTTP
st=expand&c=22&t=party&k=fun HTTP
st=expand&c=22&k=fun HTTP
st=expand HTTP
 HTTP
Run Code Online (Sandbox Code Playgroud)

输出数据

expand,22,button,fun
,22,button,fun
expand,22,party,fun
expand,22,,fun
expand,,,
,,,
Run Code Online (Sandbox Code Playgroud)

regex awk replace sed

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

将类动态添加到 Ruby 中的模块

假设我像这样动态创建一个模块:

app = Object.const_set('CoolModule', Module.new)
Run Code Online (Sandbox Code Playgroud)

无论如何要向该模块添加一个类?也许像这样的东西?

app << (class Application; end)
Run Code Online (Sandbox Code Playgroud)

我基本上是在尝试进行以下操作

module 'CoolModule'.turnThisIntoAModule
  class Application < Rails::Application
    config.blabla = 2
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

根据环境在Rails中加载不同的Javascript文件

在Rails 3.2中根据您的环境(生产或开发)加载不同的Javascript文件的最佳方法是什么?我正在尝试创建一个全局(是全局)javascript变量,该变量应根据环境而有所不同。该变量由JQuery调用,但是我编写的其他一些javascript文件需要该变量。

最好application.js.erb根据我们正在运行的环境生成动态的,还是我遗漏了什么?

谢谢

javascript ruby-on-rails erb asset-pipeline

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

查询Mongoid 5.1中的日期范围

你如何使用Mongoid 5.1查询日期范围?我正在尝试类似的东西

Data.find(sid: 7, :created_at => (Time.parse('5-07-2015')..Time.now ))
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误

有任何想法吗?

ruby-on-rails mongodb mongoid

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

在upstart脚本中切换用户

是否可以使用以root身份运行预脚本的upstart脚本,但其余部分为normal_user.我正在尝试这样的事情:

setuid normal_user

pre-start exec su -c "echo I'm root" root

script
exec /bin/bash <<"EOT"
    echo "haha, I'm normal user"
EOT
Run Code Online (Sandbox Code Playgroud)

是否有必要放弃setuid?

bash ubuntu upstart

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

标签 统计

ruby-on-rails ×4

ruby ×2

asset-pipeline ×1

awk ×1

bash ×1

erb ×1

javascript ×1

json ×1

mongodb ×1

mongoid ×1

regex ×1

replace ×1

sed ×1

ubuntu ×1

upstart ×1