小编use*_*594的帖子

如果find在rails中没有返回任何内容,我怎么能跳过错误?

我正在尝试建立一个系统,用户只能看到他或她写的文章.

在文章控制器中,我把它放在下面

@article = current_user.articles.find(params[:id])
Run Code Online (Sandbox Code Playgroud)

其中params [:id]是article_id.

我只想知道如何从显示中跳过错误,如果文章不存在,或者如果用户没有查看权限,只需重定向到:index操作.我把@ article.nil?上面的find语句之后的条件语句,但似乎上面的find语句会立即生成错误,如下所示.

找不到ID = 1662的文章[WHERE(articles.user_id = 1)]

我该如何解决这个问题?

ruby-on-rails

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

Firestore 是否有内部机制来保护应用程序免受 DDOS 请求的过度收费?

我想知道 Firestore 是否有内部机制来阻止类似于 DDOS 的请求以防止成本突然激增,或者是否有一个功能让所有者限制最大请求/费用。

例如,假设 Firestore 中有一个集合,只要用户登录我的应用程序就可以访问该集合。

如果攻击者创建了大约 100 个用户帐户,并编写了一个脚本,该脚本从不同的计算机(例如 100 个随机计算实例,每个用户 1 个)逐渐连续地访问集合中的一个条目,每个条目大约 10~50 tps,则读取总数每天的访问量可以超过 2.16 亿次请求。

(100 个用户 * 25 平均 TPS * 86400 秒/天)= 2.16 亿。

这相当于每天 129 美元左右,当前定价单位为 0.06 美元/10 万个请求。

如果攻击者一次使用list请求和访问 10 个项目而不是一个项目,则费用可能高达 1290 美元/天。如果其中一个集合允许用户一次查询多达 100 条记录,则这可能会变成 12900 美元/天。

我可能对此过于偏执,但我想避免面对一夜之间累积的 1 万美元意外账单,并在早上醒来时了解它。我知道这种攻击发生的可能性很低,但如果需要,任何攻击者似乎仍然有可能执行它。

由于这种风险,我不想将我的 Firestore 集合直接公开给客户端 sdks(例如将所有读/写安全规则设置为 false),而是想使用自定义端点和 Firebase Admin SDK 来控制速率限制...但这只是失去了可用客户端 sdks 的所有优势,以减少延迟和简化开发。

Firestore 是否有某种形式的机制来防止此类问题的发生?或者它是否允许类似于 AWS dynamoDB 中的最大读/写容量限制的速率限制请求?

firebase google-cloud-firestore

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

什么是从文本中删除\n\r的SQL查询?

我正在使用MySQL.我的数据有一个名为的列text,它使用TEXT数据类型.

此列中的每条记录都有几个换行符.我想用SQL查询删除所有新行.我怎样才能做到这一点?

mysql sql

12
推荐指数
4
解决办法
3万
查看次数

Meteor的源代码向客户开放?

从一般的一瞥看来,由于"写一个Javascript文件,一次在客户端和服务器上运行"主题,Meteor app的源代码似乎对客户开放.

如果特定应用程序的服务器端源代码向客户端开放,随机人员复制它们并创建非常相似的应用程序会不容易?

对于有恶意目的的人来说,在应用程序中找到安全漏洞并不容易,因为它的服务器端代码对公众开放?

例如,在Meteor 0.5.0 的派对应用新示例中,model.js文件似乎也被发送到客户端.

我在这里误解了什么吗?

编辑

这是我不理解的部分.

根据http://docs.meteor.com/#structuringyourapp,

客户端和服务器子目录之外的文件都加载到客户端和服务器上!这是模型定义和其他功能的地方

我真的不明白.如果将每个模型实现(包括数据库交互)发送到客户端,那么应用程序的安全性会不那么安全并且很容易被其他开发人员复制?

meteor

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

Xcode 错误“为 iOS 模拟器构建,但链接到为 iOS 构建的 dylib .. 来自 Apple Silicon M1 Mac 的架构 arm64”

我有一个应用程序,它可以在旧 Mac 上在物理设备和 iOS 模拟器中使用 Intel 处理器编译并运行良好。

同一个应用程序也可以在带有 M1 处理器的较新 Apple Silicon Mac 和物理 iPhone 设备上编译并运行良好,但是,它拒绝为 iOS 模拟器编译。

如果没有模拟器支持,调试周转时间会变得很长,所以我试图解决这个问题。更不用说 Xcode 预览功能也不起作用,这很烦人。

我在没有进行任何更改(但从 Intel Mac 移至 M1 Mac)的情况下遇到的第一个错误如下所示。

building for iOS Simulator, but linking in dylib built for iOS, file '/Users/andy/workspace/app/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC' for architecture arm64

我使用的 Cocoapods 库是 GoogleWebRTC,根据它的文档,应该支持 arm64,所以我很困惑为什么会抛出上述错误。正如我之前所说,它在我认为在 arm64 上运行的真实设备中编译得很好。

根据文档..

这个 pod 包含二进制形式的 WebRTC iOS SDK。它是一个包含 armv7、arm64 和 x86_64 切片的动态库。不支持位码。我们当前提供的 API 仅适用于 Objective C。

我在网上搜索,似乎有两种解决方法可以解决此问题。

  1. 第一个是通过添加arm64Excluded Architectures
  2. 第二个选项是标记Build Active …

xcode cocoa-touch ios apple-silicon

12
推荐指数
2
解决办法
4006
查看次数

在不同主机上建立套接字连接时出现"ECONNREFUSED"错误

显然,我正在测试使用Node.js的简单TCP服务器.

如果服务器代码和客户端代码都在同一台机器上,则它们运行良好.

但是,似乎当我在不同的机器上运行服务器并测试从不同机器的客户端连接到服务器时,我得到如下错误.

Error: connect ECONNREFUSED
at errnoException (net.js:589:11)
at Object.afterConnect [as oncomplete] (net.js:580:18)
Run Code Online (Sandbox Code Playgroud)

我尝试输入服务器的IP地址或服务器的域名,但没有运气.

服务器代码如下所示(服务器以root权限运行..)

var net = require('net');
var HOST = '127.0.0.1';
var PORT = 6969;
net.createServer(function(sock) {
    console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort);
    sock.on('data', function(data) {

        console.log('DATA ' + sock.remoteAddress + ': ' + data);
        sock.write('You said "' + data + '"');

    });
    sock.on('close', function(data) {
        console.log('CLOSED: ' + sock.remoteAddress +' '+ sock.remotePort);
    });

}).listen(PORT, HOST);

console.log('Server listening on ' + HOST +':'+ …
Run Code Online (Sandbox Code Playgroud)

node.js

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

有没有办法让mongoid使用整数(数字)作为默认id而不是长哈希值?

我只想拥有ActiveRecord的默认特性,它使用增量整数作为id来减少url的长度.

例如,创建的第一篇文章将具有类似"app.com/articles/1"的网址,这是ActiveRecord中的默认网址.

是否有任何宝石在mongoid中支持这个?

ruby ruby-on-rails mongoid

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

如何将数据库结构从db导出到迁移文件?

有没有办法从rails应用程序导出数据库中的数据库结构?我相信有一种方法可以使用rake从db导出数据.

rake db:migrate将从迁移文件创建表.是否存在相反方式的命令,以便从db生成迁移文件?

我之前在3.0.x版本中构建了一个rails应用程序.

我有更多的迁移文件,而不是数据库中的实际表数,因为我有一些迁移文件,它添加,删除或更改数据库的列结构.

显然,我可以手动更改每个迁移文件并将其更改为3.1标准的迁移文件,但我只想知道是否有一种方法可以导出数据库结构.(或者,从现有的模式文件派生)

rake ruby-on-rails rake-task

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

在多核服务器中使用socket.io与群集的好方法?

我创建了一个nodejs应用程序,它在单个核心中运行良好.此应用程序使用socket.io进行轻量级和快速通信.

现在,我想通过使用clusternodejs中的模块在多核系统上运行来垂直扩展我的应用程序.

我的应用程序中的所有内容都将数据存储在Redis中,因此,处理一些基本数据和会话时没有问题.

但是,当我使用集群生成多个工作进程时,似乎每个worker都有自己的套接字处理.

例如,假设有一个名为"客房"的聊天室.

用户A和用户B连接到房间,并将它们分发到不同的工作进程.

由于它们处于不同的进程中并且这些进程不共享套接字侦听器,因此用户A和用户B无法相互通信.

解决这个问题的好方法是什么?socket.io是否支持多核系统?

socket.io仅适用于单核使用吗?

redis node.js socket.io

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

使用firebase数据库实现"标记"功能的最佳方法是什么?

使用firebase数据库实现"标记"功能的最佳方法是什么?

假设有数千万个帖子,每个帖子可以使用标签或多个标签进行标记.

如果我想添加一个类似于复选框的过滤器,观看者可以选择一个或多个标签来查看属于所有标签的帖子,这可以在firebase数据存储中实现吗?

例如,如果用户选择以下3个标签'Drama','Love'和'Horror',我想返回所有标记有至少这3个标签的帖子.

使用关系数据存储区很容易做到这一点,但我不确定这是否可以在NoSQL(云数据存储区,firebase数据库)存储中相对容易地完成.

nosql firebase firebase-realtime-database

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