草庐IT

decorated_method

全部标签

ruby-on-rails - Heroku "at=error code=H10 desc="应用程序崩溃“method=GET path=/favicon.ico”

我有一个简单的Rails应用程序,可以在本地主机(MacOSX)上正常运行,但是当我将它部署到Heroku时,我看到一个页面出现此错误:应用程序错误应用程序发生错误,无法提供您的页面。请稍后重试。如果您是应用程序所有者,请查看您的日志以了解详细信息。我真的不知道我在这里做什么;我无法理解herokulogs的输出:2013-04-08T03:25:02+00:00app[web.1]:=>BootingWEBrick2013-04-08T03:25:02+00:00app[web.1]:=>Rails3.2.12applicationstartinginproductiononhttp

ruby-on-rails - 从 Rails 4.1.4 更新到 4.2.0 后,AR CollectionProxy 上的 "first!"引发 "undefined method [] for nil"

我开始从Rails4.1.4升级到Rails4.2.0。好像是第一!不再支持某些事件记录关联。first!(在ActiveRecord::Associations::CollectionProxy上)发生了什么导致它现在失败?如何修复该行为,使其像在4.1.4中一样工作?rails4.1:(byebug)user.organization.registration_codes#]>(byebug)user.organization.registration_codes.first!#rails4.2:(byebug)user.organization.registration_code

ruby - define_method 带有预定义的关键字参数

我想定义一个接受关键字参数的方法。我希望它在未提供关键字参数时引发,我可以自己编写代码-但理想情况下我想让Ruby为我做这件事。此外,我希望能够使用Method#parameters检查新定义的方法。如果我使用速记双标(如**kwargs),我期望的实际结构对parameters不可见。我当然可以这样做:define_method(:foo)do|foo:,bar:|#...end达到预期效果:method(:foo).parameters#=>[[:keyreq,:foo],[:keyreq,:bar]]但我无法以编程方式传递这些参数,它们必须按字面意思放在代码中。有什么办法可以绕过

ruby-on-rails - Rails 控制台错误 : undefined method `each' for nil:NilClass (NoMethodError)

在我的Rails应用程序的根目录中运行railsconsole的任何尝试都会产生以下错误:undefinedmethod`each'fornil:NilClass(NoMethodError)完整的堆栈跟踪:/Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/railtie.rb:245:in`each_registered_block':undefinedmethod`each'fornil:NilClass(NoMethodError)from/Use

ruby-on-rails - 了解使用 method_added 动态覆盖实例方法的 ruby​​ 元编程

我有以下来自ProgrammingRuby1.9的代码(稍微改编)我只是想确保我的思维过程是准确的moduleTracedefself.included(culprit)#Injectexistingmethodswithtracingcode:culprit.instance_methods(false).eachdo|func|inject(culprit,func)end#Overridethesingletonsmethod_addedtoensureallfuturemethodsareinjected.defculprit.method_added(meth)unless@

ruby-on-rails - rails 和 ActiveRecord : DRY use same logic in scope and boolean method

我有一个带有范围和方法的模型,如下所示:classModel?OR(updated_atISNULLANDcreated_at>?)',(Date.today-3.days).beginning_of_day,(Date.today-3.days).beginning_of_day)defeditable?return(self.updated_at||self.created_at)>(Date.today-3.days).beginning_of_dayendend我觉得我不应该在范围和方法中编写两次相同的逻辑。有什么办法可以避免这种情况吗?我在Rails3.2上谢谢

ruby - 无法使用 facebook 进行身份验证 : undefined method 'web_server' for OAuth2?

试图让用户登录/注册Twitter和Facebook。Twitter没有问题,但Facebook的策略不同。undefinedmethod`web_server'for#跟踪显示oa-oauth(0.0.1)lib/omniauth/strategies/oauth2.rb:18:in`request_phase'oa-oauth(0.0.1)lib/omniauth/strategies/facebook.rb:28:in`request_phase'oa-core(0.0.5)lib/omniauth/strategy.rb:25:in`call!'oa-core(0.0.5)li

arrays - ruby 基础 : Pop Method in Array

我正在努力在线学习LearningRubytheHardWay;我刚刚完成第26个练习,这是一个“测试”,您可以借此修复某人的损坏代码。我的问题是在pop方法中使用参数。我熟悉基础知识,但正确答案意味着将参数从“-1”更改为“1”,我不确定它到底是什么意思。有问题的行是:defputs_last_word(words)word=words.pop(1)putswordend我假设它从数组中弹出第二个元素,但我想要确认或帮助,以适当的为准。 最佳答案 Array#pop的文档中可以得到最好的确认:http://rubydoc.info

ruby - Object#method 和动态响应器

我有一个名为User的Ruby对象(特别是ActiveRecord对象)。它响应find_by_id、find_by_auth_token等方法。但是,这些不是通过def或define_method。相反,它们是通过method_missing处理的动态方法。我想通过Object#method获得对其中一种方法的引用,例如:User.method(:find_by_auth_token)虽然这看起来并不可行。我想到的最佳解决方案是:proc{|token|User.find_by_auth_token(token)}有没有其他方法可以使用这样的包装方法?我真的无法将Object#met

ruby - 为什么是 Module.methods() 和 respond_to?在 irb 中的工作方式与在脚本中不同?

我尝试在Ruby中使用反射方法,遇到了一种我觉得非常奇怪的行为。以下示例在IRB中和调用ruby​​脚本时似乎有所不同:示例1:defmyfun;endprespond_to?(:myfun)在IRb中,这表示“真”,在脚本中:'false'。示例2:ml=methodsdefmyfun;endpmethods-ml在IRb中,这表示[:myfun]。在脚本中:[].我在1.8、1.9MRI、JRuby1.5.6等下发现了这个-所以我认为这是正常的。为什么不同?我很确定“respond_to?”是查看方法是否可用的方法-为什么在上述情况下不起作用? 最佳答案