小编Jam*_*rce的帖子

为无效日期提升ActiveRecord :: RecordNotFound(或任何404状态)

在我的控制器控制器中,我Date.new用来创建一个在ActiveRecord中传递的日期对象.

end_range = Date.new(params[:year].to_i, params[:month].to_i, params[:day].to_i).end_of_day.to_formatted_s(:db)
Run Code Online (Sandbox Code Playgroud)

上面的问题是,如果用户试图手动更改URL中的参数,例如输入40日期参数,则Date.new失败(如预期的那样).但是,如果用户键入类似的内容,我宁愿不会出现500错误,而是404错误(因为你实际上永远不会有一天的记录40).

我尝试了各种条件(ifunless语句),raise ActiveRecord::RecordNotFound如果失败,但它在运行条件之前返回500错误(因此永远不会返回404).

有没有人知道更好的方法来处理它,或者是一种允许Date.new更优雅地失败以便条件语句可以运行的方法?

ruby-on-rails

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

使用ruby发送套接字消息而不关闭连接

我正在研究一个小的ruby客户端,它将连续的信息流发送到套接字服务器(然后传递给其他侦听的客户端).我不希望每次发送数据时都关闭连接,但是看起来使用ruby,在关闭连接之前不会发送数据.是否有另一种方法可以在不重新连接到服务器的情况下执行此操作?传输数据必须在客户端脚本发送后立即传递.

目前我必须在循环中执行此操作:

s = TCPsocket.new('127.0.0.1',2000)
s.send('Hello World',0)
s.close
Run Code Online (Sandbox Code Playgroud)

但是,这意味着我经常需要非常快速地重新连接到套接字服务器.我希望能够连接到循环外部的套接字服务器,并在循环完成时关闭.如果我现在这样做,发送数据将在启动'关闭'时立即发送.

是否可以在继续发送信息的同时保持连接打开?我知道这在其他语言和脚本中是可行的,因为我在AS3中已经多次这样做了.

提前致谢.

ruby sockets

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

标签 统计

ruby ×1

ruby-on-rails ×1

sockets ×1