草庐IT

上网行为管理

全部标签

ruby - 为什么带有 splat 参数的 Ruby 过程/ block 的行为与方法和 lambda 不同?

为什么带有splat参数的Ruby(2.0)过程/block的行为与方法和lambda不同?deffoo(ids,*args)pidsendfoo([1,2,3])#=>[1,2,3]bar=lambdado|ids,*args|pidsendbar.call([1,2,3])#=>[1,2,3]baz=procdo|ids,*args|pidsendbaz.call([1,2,3])#=>1defqux(ids,*args)yieldids,*argsendqux([1,2,3]){|ids,*args|pids}#=>1这是对此行为的确认,但没有解释:http://makandra

ruby-on-rails - 在 Rails 应用程序中记录警告(不是错误),并管理它们

我正在寻找一个好的流程来处理Rails应用程序中的警告/信息类型的消息。例如,用户输入错误密码的次数,模型验证失败的次数等。特别是,我正在寻找一种有效的方法来操作这些指标,因为它们不是异常(exception),但可能表明潜在的错误或功能方面的问题。我正在考虑的解决方案是:记录WARNING或INFO消息并使用Splunk解析它们(不幸的是Splunk非常昂贵)在WARNING环境中发送Airbrake错误 最佳答案 你应该看看Papertrail作为Splunk+Airbrake的替代品。如果您只对日志记录感兴趣,这似乎更合适。

ruby - ruby、openssl、unicorn、systemd (Gcloud) 的非常奇怪的行为

我们开始在日志中看到一些奇怪的错误,这些错误通常在ruby​​未使用OpenSSL正确编译时出现。但它不一致...我们收到如下错误:RuntimeError:不支持的摘要算法(SHA256)。(还有其他摘要,如sha1)。exampleerrortraceFaraday::SSLError(SSL_CTX_new:(null))exampleerrortrace我们在使用serviceunicornstart或systemctlstartunicorn启动unicorn时成功重现了它。但只有一些请求...不是全部。某些在后台使用OpenSSL的请求确实有效。其他人没有。但是,当我们使用

ruby - 数组分配与追加行为

在我看来,以下行为就像assign方法正在按值处理visited,而append方法将其视为引用:classMyClassdefassign(visited)visited+=["A"]enddefappend(visited)visited[]instance.append(visited)visited#=>["A"]有人可以解释这种行为吗?这不是关于Ruby是否支持按引用传递或按值传递的问题,而是关于下面提供的示例,以及为什么两个据称执行相同操作的方法表现出不同行为的问题。 最佳答案 您在第一个方法中重新定义了局部变量。这是一

ruby - 当销毁失败时,我可以在事件管理员中有一个闪现消息吗?

在我的应用程序中,有些资源无法销毁。所以我这样写了我的模型:before_destroy:destroy_checkdefdestroy_checkifsome_reason?errors.add(:base,'cannotdestroythisresource!')enderrors.blank?end然后,当我在ActiveAdmin中单击销毁按钮时,没有任何显示:没有错误,没有消息,并且记录没有真正销毁。如何在销毁失败时显示错误消息? 最佳答案 首先使用模型的before_destroy回调来检查记录是否可以被销毁(这里如果学

ruby-on-rails - Rails 应用程序管理部分

我正在开发我的第一个Rails应用程序,想创建一个管理部分。我是否希望将管理部分和网站其余部分的View和Controller完全分开(即在不同的目录中)?如何在自定义目录中组织我的View/Controller(如何配置路由)? 最佳答案 创建您的管理Controller:script/generatecontrolleradmin/articles然后在你的routes.rb文件中map.resource:admindo|admin|admin.resources:articles,:path_prefix=>"admin",:

ruby-on-rails - 如何在 update_attributes 期间以管理员身份跳过验证?

当我尝试以管理员身份编辑用户时,我想跳过验证。型号classUser...attr_accessible:company_id,:first_name,:disabled,as::adminControllerclassAdmin::UsersController...defupdate@user=User.find(params[:id])@user.update_attributes(params[:user],as::admin)redirect_toedit_admin_user_path(@user),:notice=>"UserAccountUpdated"end所以我尝试

ruby-on-rails - 事件管理员 : sorting on multiple columns

ActiveAdmin似乎还不支持多列排序(即将多个值传递给config.sortable选项)。我看到一个老猴子补丁here但它似乎不适用于我的版本(来自Github的1.0.0.pre)。有没有办法在最新的ActiveAdmin版本上获得多个可排序的列? 最佳答案 这也是一个猴子补丁:在config/initializers或lib文件夹中创建一个新文件:multiple_columns_sorting.rbmoduleActiveAdminclassResourceController重启服务器。现在您可以使用由"_and_"

ruby-on-rails - Rails 4.2.0.beta2 中的奇怪行为 - 这是一个错误吗?

在每隔窗口重新加载时出现500错误。assets/application-CACHE-.js未找到。不知道是什么原因造成的。开发环境。使用Unicorn作为我的网络服务器。有人知道这是什么吗?17:07:13web.1|127.0.0.1--[15/Oct/2014:17:07:13-0400]"GET/blogHTTP/1.1"200-0.288517:07:13web.1|127.0.0.1--[15/Oct/2014:17:07:13-0400]"GET/about-64845c436e75ac587deec98177291d4e.css?body=1HTTP/1.1"304-0

ruby - 为什么我的带有 ANSI 颜色代码的 IRB 提示通过复制/粘贴弄乱了翻页/翻页行为?

我添加到我的.irbrc:IRB.conf[:PROMPT].reverse_merge!(:RAILS_ENV=>{:PROMPT_I=>"#{current_app}#{rails_env}#{prompt}",:PROMPT_N=>"#{current_app}#{rails_env}#{prompt}",:PROMPT_S=>nil,:PROMPT_C=>"?>",:RETURN=>"=>%s\n"})IRB.conf[:PROMPT_MODE]=:RAILS_ENV如果我这样做:current_app="\e[31mfoo_bar_app\e[0m"rails_env="\e