小编use*_*452的帖子

如何在 Ruby 哈希中动态设置嵌套键的值

这应该很容易,但我找不到合适的解决方案。对于第一级按键:

resource.public_send("#{key}=", value)
Run Code Online (Sandbox Code Playgroud)

但对于foo.bar.lolo

我知道我可以像下面这样得到它:

'foo.bar.lolo'.split('.').inject(resource, :send)
Run Code Online (Sandbox Code Playgroud)

或者

resource.instance_eval("foo.bar.lolo")
Run Code Online (Sandbox Code Playgroud)

但是假设我不知道嵌套级别,如何将值设置为最后一个变量,它可能是第二个或第三个。

有没有通用的方法可以为所有级别做到这一点?对于我的例子,我可以这样做:

resource.public_send("fofo").public_send("bar").public_send("lolo=", value)
Run Code Online (Sandbox Code Playgroud)

ruby hash ruby-on-rails send

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

将一行添加到文件的命令的 Cloud-init runcmd 语法

我正在尝试执行这个简单的命令,但它一直失败:

 echo "secret_backend_command: /home/ec2-user/dd-get-secrets.py" >> /etc/datadog-agent/datadog.yaml"
Run Code Online (Sandbox Code Playgroud)

我尝试了以下所有方法:

        - [ sh, -c, echo "secret_backend_command: /home/ec2-user/dd-get-secrets.py" >> /etc/datadog-agent/datadog.yaml ]

        - 'sh -c "echo \"secret_backend_command: /home/ec2-user/dd-get-secrets.py\" >> /etc/datadog-agent/datadog.yaml"'

        - sh -c "echo 'secret_backend_command: /home/ec2-user/dd-get-secrets.py' >> /etc/datadog-agent/datadog.yaml
Run Code Online (Sandbox Code Playgroud)

知道如何修复这个报价吗?

请注意,我使用另一个文件而不是 datadpg.yaml 进行了测试,因为我对此文件的权限被拒绝。

我在这里找到的例子不起作用

amazon-ec2 amazon-web-services user-data cloud-init

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

查询 Char 变化的 postgres

我一直在尝试使以下查询有效,但我做不到:

   SELECT "users".* FROM "users" WHERE (users.roles LIKE "%sales%")
or
   SELECT "users".* FROM "users" WHERE (users.roles LIKE '%sales%')
Run Code Online (Sandbox Code Playgroud)

其中角色可以包含:

 {operations,business_development,sales,customer_service,manager}
Run Code Online (Sandbox Code Playgroud)

角色是:character varying[]

我收到错误:

错误:运算符不存在:字符变化[] ~~未知第1行:从用户中选择users.id,其中users.roles LIKE '%sales%'...

sql postgresql char varying

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

使用 Rails 中的 postgres json 字段更新嵌套键

我一直在尝试更新以下内容:

{"boxes": {"book": 2, "moving": 2}, "goods": {}}
Run Code Online (Sandbox Code Playgroud)

到 :

{"boxes": {"book_new": 2, "moving": 2}, "goods": {}}
Run Code Online (Sandbox Code Playgroud)

不使用正则表达式或在 ruby​​ 中执行此操作。但似乎有点棘手。我想添加新密钥然后删除旧密钥,我不熟悉语法,而且我在互联网上找不到太多东西。

我能够向数据添加新元素,但不能向嵌套框添加新元素!!像那样:

Update moves SET data = data::jsonb || '{"bookasas": 2}'   WHERE data ->> 'boxes' LIKE '%book%';
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

postgresql json jsonb

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

添加一个css类以在Rails中选择

我一直试图让以下类适用于选择/下拉列表,但我不能!

 = f.select attr, [1,2,3],  class: 'form-control', include_blank: true
Run Code Online (Sandbox Code Playgroud)

我试着在这里这里阅读rails代码.它就像它没有实现?但它适用于文本字段:

 = f.search_field attr, options.merge(class: 'form-control')
Run Code Online (Sandbox Code Playgroud)

我正在使用slimsimple_form

css select ruby-on-rails simple-form slim-lang

0
推荐指数
1
解决办法
446
查看次数