在我的控制器控制器中,我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).
我尝试了各种条件(if和unless语句),raise ActiveRecord::RecordNotFound如果失败,但它在运行条件之前返回500错误(因此永远不会返回404).
有没有人知道更好的方法来处理它,或者是一种允许Date.new更优雅地失败以便条件语句可以运行的方法?
我正在研究一个小的ruby客户端,它将连续的信息流发送到套接字服务器(然后传递给其他侦听的客户端).我不希望每次发送数据时都关闭连接,但是看起来使用ruby,在关闭连接之前不会发送数据.是否有另一种方法可以在不重新连接到服务器的情况下执行此操作?传输数据必须在客户端脚本发送后立即传递.
目前我必须在循环中执行此操作:
s = TCPsocket.new('127.0.0.1',2000)
s.send('Hello World',0)
s.close
Run Code Online (Sandbox Code Playgroud)
但是,这意味着我经常需要非常快速地重新连接到套接字服务器.我希望能够连接到循环外部的套接字服务器,并在循环完成时关闭.如果我现在这样做,发送数据将在启动'关闭'时立即发送.
是否可以在继续发送信息的同时保持连接打开?我知道这在其他语言和脚本中是可行的,因为我在AS3中已经多次这样做了.
提前致谢.