小编Mar*_*cak的帖子

使用 rake db:migrate 迁移数据不会改变它

我正在为 rails 和 db:migrate 苦苦挣扎。我有这个代码的迁移

class SetDefaultInstallmentsForLicenses < ActiveRecord::Migration
  def up
    License.where(code: 'LEADER').each do |leader|
      puts "Modifying license #{leader.id} with code #{leader.code}"
      leader.installment_available = true
      leader.installment_number = 5
      leader.save
      puts "After save #{leader.installment_available} #{leader.installment_number}"
      leader = License.find(leader.id)
      puts "After save #{leader.installment_available} #{leader.installment_number}"
    end
  end

  def down
  end
end
Run Code Online (Sandbox Code Playgroud)

运行迁移后有这个输出

==  SetDefaultInstallmentsForLicenses: migrating ==============================
Modifying license 3 with code LEADER
After save true 5
After save f
==  SetDefaultInstallmentsForLicenses: migrated (0.0037s) =====================
Run Code Online (Sandbox Code Playgroud)

可以清楚地看到执行迁移,找到记录,更改并保存,但重新加载记录后,更改不存在。怎么了?

ruby ruby-on-rails database-migration dbmigrate

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

将 mousedown 事件分派给元素不会给它焦点

我尝试使用以下代码来拦截 mousedown 事件,然后重新调度它,以便在任何元素获得焦点时都能得到控制。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script type="text/javascript">
document.addEventListener('mousedown', function (e) {
    console.log('mousedown', e);
    if (e.target.getAttribute('id') === 'target' && !e.__redispatched) {
        console.log('cancelling');
        e.preventDefault();
        e.stopPropagation();
        e.stopImmediatePropagation();
        setTimeout(function () {
            var re = new MouseEvent('mousedown', {
                bubbles: true,
                cancelable: true,
                view: window,
                screenX: e.screenX,
                screenY: e.screenY,
                clientX: e.clientX,
                clientY: e.clientY,
                ctrlKey: e.ctrlKey,
                shiftKey: e.shiftKey,
                altKey: e.altKey,
                button: e.button,
                buttons: e.buttons,
                relatedTarget: e.relatedTarget,
                region: e.region
            }); 
            re.__redispatched = true;
            document.getElementById('target').dispatchEvent(re);
        }, 100);
    }

})
    </script>
    <input …
Run Code Online (Sandbox Code Playgroud)

javascript dom javascript-events

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

dispatchEvent会触发“默认”处理程序吗?

我创建了此简短代码段,以测试是否有可能default在javascript事件中触发处理程序。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script></script>
document.addEventListener('mousedown', function (e){
    console.log('mousedown', e);
    if (e.target === document.getElementById('target')) {
        if (!e.__redispatched) {
            e.preventDefault();
            e.stopPropagation();
            e.stopImmediatePropagation();
            var ne = new MouseEvent('mousedown', e);
            ne.__redispatched = true;
            setTimeout(function (){
                e.target.focus();
                e.target.dispatchEvent(ne);
            }, 1000);
        }
    }
}, true);
    </head>
    <body>
        <input type="text" id="target"/>
        <input type="text"/>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我希望target输入会接收事件并像往常一样处理它,从而将插入符号移动到正确的位置(就像它通常在上一样mousedown)。但是什么也没发生。

我的问题:我dispatchEvent在处理合成事件时是否做错了事?浏览器会忽略默认处理程序吗?是否有任何材料/证明?

谢谢。

javascript dom javascript-events

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

在没有 Confluent Schema Registry 的情况下在 KafkaConnect 中使用 Avro

我们在当前的基础设施中设置了 vanilla apache Kafka,我们开始记录一些我们想要使用 Kafka Connect 处理的数据。目前我们使用 Avro 作为我们的消息格式,但我们的基础设施中没有 Schema Registry。将来,我们计划用 Confluent 替换当前堆栈并使用 Schema Registry 和 Connect,但有一段时间我们只需要为此部署 Connect。

是否可以以某种方式配置 Connect 接收器,以便它们使用显式的 avsc 文件或架构,而无需连接到架构注册表,也不使用具有魔术字节和架构 ID 的 Confluent 格式?

avro apache-kafka apache-kafka-connect confluent-schema-registry

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

带有 kafka-avro-console-consumer 的未知魔法字节

我一直在尝试将 kafka-avro-console-consumer 从 Confluent 连接到我们遗留的 Kafka 集群,该集群是在没有 Confluent Schema Registry 的情况下部署的。我使用以下属性显式提供了架构:

kafka-console-consumer --bootstrap-server kafka02.internal:9092 \
    --topic test \
    --from-beginning \
    --property key.schema='{"type":"long"}' \
    --property value.schema='{"type":"long"}'
Run Code Online (Sandbox Code Playgroud)

但我收到“未知的魔法字节!” 错误org.apache.kafka.common.errors.SerializationException

是否可以使用 Confluent kafka-avro-console-consumer 消费来自 Kafka 的 Avro 消息,这些消息未使用 Confluent 的 AvroSerializer 和 Schema Registry 序列化?

avro apache-kafka confluent-schema-registry confluent-platform

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

AWS XRay 与适用于 NodeJS 的 AWS 开发工具包 v3

有没有办法将 XRay 仪器用于 AWS NodeJS SDK v3?在 SDK v2 中,AWSXray 能够捕获任何客户端并对其进行检测以跟踪到 XRay。我一直在使用 v3 尝试同样的事情,代码片段如下

const  {DynamoDBClient, ScanCommand} = require("@aws-sdk/client-dynamodb");
const AWSXRay = require("aws-xray-sdk");
// if uncommented, this throws an exception
// AWSXRay.captureAWSClient(DynamoDBClient); 

const client = new DynamoDBClient({region: process.env.AWS_REGION});
// if uncommented, this throws an exception
// AWSXRay.captureAWSClient(client);

const scan = new ScanCommand({
    TableName: 'xxx',
});
await client.send(scan) //?

Run Code Online (Sandbox Code Playgroud)

但两条注释行都抛出service.customizeRequests is not a function. 这似乎 AWS SDK s3 与原始 AWSXRay 库不向后兼容。

我发现 SDK v3 包含 XRay 客户端,但这只是一个可以将跨度和跟踪发送到 AWS 的客户端,而不是仪器代理。 …

javascript node.js aws-lambda aws-xray aws-sdk-js

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

AWS Cognito IdentityId 和 IdentityPoolId 为 null

我一直在尝试使用联合身份和身份池的 Cognito 用户池。我创建了身份池并指定 cognito 作为其身份验证提供者。Cognito 有 Google 身份提供商。我使用 Amplify 进行注册/登录,它配置了身份池和我的用户池。当我登录时,身份会在身份池中正确创建,并链接到用户池中的用户。我可以在 Amplify 会话中的可用凭据中看到 IdentityId 和 IdentityPoolId,两者都包含有效信息,我能够毫无问题地调用 Cognito 同步并交换身份数据。

我在通过 API Gateway 发送到集成的 API Lambda 处理程序的身份时遇到问题。我使用 REST API(旧的),集成为 Lambda 代理,并创建了 Lambda 授权方,它只是将事件转储到日志中。

当我检查 CloudWatch 日志时,我看到

"identity": {
            "cognitoIdentityPoolId": null,
            "accountId": null,
            "cognitoIdentityId": null,
            "caller": null,
            "sourceIp": "185.5.69.158",
            "principalOrgId": null,
            "accessKey": null,
            "cognitoAuthenticationType": null,
            "cognitoAuthenticationProvider": null,
            "userArn": null,
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
            "user": null
        },
Run Code Online (Sandbox Code Playgroud)

为什么我们 cognitoIdentityPoolId 和 cognitoIdentityId 为 null?我使用 Amplify API …

amazon-cognito aws-api-gateway

5
推荐指数
0
解决办法
422
查看次数

AWS 更新/升级现有执行的 Step Functions

我们一直在考虑使用 AWS Step Functions 进行审批工作流程,该工作流程可以通过回调运行任务并等待人工操作和其他耗时的操作。Step Functions 的文档显示,最大执行时间有硬性配额,即 1 年。这似乎是合理的限制。

但是,我们无法找到有关 Step Functions 更新后待执行执行情况的任何信息。有什么方法可以将现有执行升级到工作流定义的新版本吗?对于运行时间较长的执行,很可能会遇到需要更新修复工作流的需求,因此很自然地为那些尚未完成的执行更新执行计划。

AWS Step Functions 支持吗?如果没有,推荐的模式(以及一些信息的来源)如何处理长时间运行的执行?

谢谢

amazon-web-services aws-step-functions

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

如何从 AWS API 目标获取日志

我有 AWS API 目标,它是由规则触发的。我将 DLQ 附加到规则,但收到拒绝的消息,但我看不出发生这种情况的任何原因。有什么方法可以在 Cloud Watch 中获取有关 API 目标/连接中的错误的日志吗?

aws-event-bridge

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

Vala,资源和本地化

在vala中处理资源(如图像,文件......)的最佳方法是什么?有资源管理系统吗?什么是本地化应用程序的最佳方式?我从.NET环境来到Vala,本地化和资源管理只是小菜一碟,但我现在完全迷失在Vala中.

有什么建议?

谢谢.

resources localization internationalization embedded-resource vala

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

activeadmin-globalize不会更新记录

我正在使用rails4,activeadmin,globalize和activeadmin-globalize.我创建了一个测试应用程序,但它对我不起作用.

我有一个模型类model.rb

class Post < ActiveRecord::Base
  active_admin_translates :title, :text do
    validates_presence_of :title
  end
end
Run Code Online (Sandbox Code Playgroud)

适当的迁移

class CreatePosts < ActiveRecord::Migration
  def up
    create_table :posts do |t|
      t.timestamps
    end
    Post.create_translation_table! title: :string, text: :text
  end

  def down
    drop_table :posts
    Post.drop_translation_table!
  end
end
Run Code Online (Sandbox Code Playgroud)

活动管理页面配置如下

ActiveAdmin.register Post do
  permit_params :title, :text, translations_attributes: [:title, :text, :locale]

  index do
    translation_status
    default_actions
  end

  form do |f|
    f.translated_inputs 'Translated fields', switch_locale: false do |t|
      t.input :title
      t.input :text
    end
    f.actions
  end
end
Run Code Online (Sandbox Code Playgroud)

当我在ActiveAdmin中创建新记录时,一切运行良好,并保存本地化.问题是当我尝试编辑并保存该记录时,没有任何改变.

谁能告诉我我做错了什么?有没有可以下载和试用自己的工作示例解决方案?

更新:

我刚刚发现,每当我尝试更新记录时,都会在翻译表中创建新的翻译记录元组.ActiveAdmin仍然看到第一个.

localization ruby-on-rails activeadmin globalize3

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

Docker 组合忽略容器中的 ipv4_address

我有以下 docker-compose.yaml 文件

version: "3.9"
services: 
  box1:
    hostname: box1
    build:
      context: .
      dockerfile: box.Dockerfile
    networks:
      testing: 
        ipv4_address: 172.28.1.10
    command: |
      /bin/sh -c 'while true; do sleep 1; done'
  box2:
    hostname: box2
    build:
      context: .
      dockerfile: box.Dockerfile
    networks:
      testing: 
        ipv4_address: 172.28.1.20
    command: |
      /bin/sh -c 'while true; do sleep 1; done'
  box3:
    hostname: box3
    build:
      context: .
      dockerfile: box.Dockerfile
    networks:
      testing: 
        ipv4_address: 172.28.1.30
    command: |
      /bin/sh -c 'while true; do sleep 1; done'
networks:
  testing:
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam: …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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

Windows Phone WebBrowser设置cookie

我使用HttpWebRequest进行REST服务,它使用一些依赖于JSESSIONID cookie的基本身份验证.我需要将该cookie传递给WebBrowser控件以重用该会话,但没有找到任何可用的解决方案,允许我在浏览器的cookie存储区中传递该cookie.

有什么办法吗?我现在能想到的唯一方法是使用Naviagate(url,null,MANUALLY_CONSTRUCTED_HEADER),这是一种蛮力.

是的,并且必须使用WebBrowser进行此类操作.

有什么建议?

.net browser cookies windows-phone windows-phone-8

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