草庐IT

method_idx

全部标签

ruby-on-rails - Rails 3 - NilClass :Class when i try to render `model_name' method 的未定义方法 'new'

我想在用户创建订单时将值保留在表单中(因此,如果用户在字段中有错误,那么用户将获得包含他/她已经打印的参数的页面)。所以我接下来做ControllerclassOrdersController",",:two_words_connector=>","endendend查看新订单:Order'screating{:class=>"form-horizontal"}do|f|%>"control-label"%>"span2",:placeholder=>@everpresent_field_placeholder%>"btnbtn-largebtn-success"%>但是当我输入错误的

ruby-on-rails - Airbrake 和 Spree 商业 API : undefined method `airbrake_request_data`

我使用Airbrake通知我SpreeCommerce商店中的错误。现在我想使用spree的API,当我尝试发布到http://localhost:3000/api/products以创建新产品时,出现以下错误:NoMethodError(undefinedmethod`airbrake_request_data'for#):activesupport(3.2.9)lib/active_support/core_ext/object/try.rb:36:in`try'airbrake(3.1.11)lib/airbrake/rails/middleware.rb:46:in`reque

C++ 风格 : Prefixing virtual keyword to overridden methods

我一直在与我的同事讨论是否在被覆盖的方法前加上virtual关键字,或者只在原始基类中添加前缀。我倾向于在所有虚拟方法(即涉及vtable查找的方法)前面加上virtual关键字。我的理由有三个:鉴于C++缺少覆盖关键字,虚拟的存在关键字至少会通知您该方法涉及查找和理论上可以被覆盖进一步的特化,或可能是通过指向更高级别的指针调用基类。一直使用这种风格意味着,当你看到一个方法时(至少在我们的代码中)没有virtual关键字,你可以最初假设它既不是源自基础或专业在子类中。如果由于某些错误,virtual已从IFoo中删除,所有children仍然可以正常工作(CFooSpecializat

C++ 风格 : Prefixing virtual keyword to overridden methods

我一直在与我的同事讨论是否在被覆盖的方法前加上virtual关键字,或者只在原始基类中添加前缀。我倾向于在所有虚拟方法(即涉及vtable查找的方法)前面加上virtual关键字。我的理由有三个:鉴于C++缺少覆盖关键字,虚拟的存在关键字至少会通知您该方法涉及查找和理论上可以被覆盖进一步的特化,或可能是通过指向更高级别的指针调用基类。一直使用这种风格意味着,当你看到一个方法时(至少在我们的代码中)没有virtual关键字,你可以最初假设它既不是源自基础或专业在子类中。如果由于某些错误,virtual已从IFoo中删除,所有children仍然可以正常工作(CFooSpecializat

ruby - rake 数据库 :migrate runs into an error for an undefined method

我接管了一个由其他人建立的网站。我现在正试图在本地主机上启动并运行它。但是,当我迁移时,看起来以前的开发人员将代码放入可能依赖于已经存在的种子的迁移中。迁移文件如下所示。defupadd_column:supplies,:color,:stringSupply.where(:title=>"Shipped").first.update(:color=>'#e20ce8')enddefdownremove_column:supplies,:colorend当我运行rakedb:migrate时我在这个文件上遇到的错误是...rakeaborted!StandardError:Anerro

ruby - 如何让 Ruby 中的 alias_method 使用子类的自定义方法?

假设我有一个包含三个子类的基类。基类有一个大多数子类通用的方法,它有一个别名:classBeerdefbottle_content'250ml'endalias_method:to_s,:bottle_contentendclassHeineken现在,如果在Duvel的分支子类实例上调用to_s方法,将返回250ml而不是330毫升。我明白为什么;别名是在父类(superclass)级别创建的。我知道这可以通过在发散类中重新定义alias_method来解决。但是还有其他方法吗?显然,使用to_s的方法是可行的:classBeerdefbottle_content'250ml'end

ruby-on-rails - Rails 3.1 中的规范失败 - NoMethodError : private method 'rand' called for Array

当我运行我的规范时,我突然遇到了一个奇怪的错误,这导致我的规范失败。这些规范以前工作过——但最近我们从Rails3.0升级到Rails3.1。似乎机械师在尝试为我的测试创建数据时遇到了一些问题,但我不太明白为什么“rand”突然不可用。如有任何想法/提示,我们将不胜感激。这是我蓝图中的一行:Invoice.blueprintdoinvno{Faker::Base.bothify(["#######","N######","C######"].rand)}order_no{Faker::Base.numerify("N######")}这是关于我的环境的一些信息-ruby-v:ruby1

Ruby - define_method 和闭包

define_method表现出以下行为:classTestClassdefexec_block(&block);yield;endendTestClass.new.send(:exec_block)do;putsself;end#->mainTestClass.send(:define_method,:bing)do;putsself;endTestClass.new.bing#->我不明白的是传递给define_method的block应该是一个闭包。因此,它应该(至少根据我的理解)捕获self的值。作为main,如调用时所示exec_block.我知道该block将成为方法的主体

ruby-on-rails - ruby rails : Calling an instance method from another model

我有一个Match模型和一个Team模型。我想在保存匹配后运行一个实例方法(在团队模型中编写)。这就是我得到的。团队.rbdefgoals_sumunlessgoal_count_cachegoal_count=a_goals_sum+b_goals_sumupdate_attribute(:goal_count_cache,goal_count)endgoal_count_cacheend并且有效。现在我需要在保存匹配项时运行它。所以我尝试了这个:匹配.rbafter_save:Team.goals_sumafter_destroy:Team.goals_sum而且它不起作用。我知道

ruby - 为什么使用 Rails public_method?

我正在阅读AvdiGrimm的书“ObjectsinRails”,他使用了public_method方法,但我不明白为什么。这是代码示例:classBlog#...attr_writer:post_source#...privatedefpost_source@post_source||=Post.public_method(:new)endend为什么要调用Post.public_method(:new)而不是Post.new?这些方法有什么不同还是完全一样?感谢您的帮助。 最佳答案 Post.new不等同于Post.public