草庐IT

types_and_classes

全部标签

ruby - "Interfaces & Abstract Classes unnecessary in Ruby"--> 谁能解释一下?

我正试图全神贯注于Ruby,而我正在努力解决的一件事是缺乏接口(interface)/抽象类支持。通过谷歌搜索,我不断看到与抽象类相关的Ruby问题的响应是“你在用Java思考。Ruby不能那样工作”那么,如果没有接口(interface)/抽象类,如何在Ruby中工作呢?例如,在Java中我可能会创建一个抽象类“book”,其子类为“novel”、“textbook”和“journal”。我在“书”中加入了很多常用功能,但我不希望它可以直接访问-书必须是小说、教科书或期刊。在ruby​​中,我该如何写出那种功能? 最佳答案 我也是

ruby-on-rails - rails : creating a custom data type/creating a shorthand

我想知道如何创建自定义数据类型以在rake迁移文件中使用。示例:如果您要创建模型,则可以在迁移文件中添加列。它可能看起来像这样:defself.upcreate_table:productsdo|t|t.column:name,:stringt.timestampsendend我想知道如何创建这样的东西:t.column:name,:my_custom_data_type之所以这样创建,例如一个“货币”类型,无非是一个精度为8,小数位数为2的小数。由于我只使用MySQL,所以这个数据库的解决方案已经足够了。感谢您的反馈和意见! 最佳答案

ruby-on-rails - 错误 "' Validate_default_type !': An option' s default must match its type (ArgumentError)"when running Ruby on Rails generate on Windows

我正在关注thistutorial并且刚刚开始。我已经使用geminstallrails安装了RubyonRails,并使用railsnewblog创建了一个博客。教程现在说我需要运行railsgeneratecontrollerWelcomeindex,但是当我这样做时,我得到了这个错误:C:/Ruby22/lib/ruby/gems/2.2.0/gems/thor-0.19.2/lib/thor/parser/option.rb:130:in`validate_default_type!':Anoption'sdefaultmustmatchitstype.(ArgumentErr

ruby-on-rails - 切换到 Rails 4.1 时出现错误 - `method_missing':ActiveRecord::Base:Class (NoMethodError) 的未定义方法 `whitelist_attributes='

从Rails4.0切换到Rails4.1时出现此错误:activerecord-4.1.8/lib/active_record/dynamic_matchers.rb:26:in`method_missing':undefinedmethod`whitelist_attributes='forActiveRecord::Base:Class(NoMethodError)我没有在我的应用程序的任何地方使用attr_accessible或attr_protected所以我想知道为什么我有问题。当迁移到Rails4.0时,我已经安装了我的application.rb:配置/应用程序.rb:c

ruby-on-rails - "class << self"在 Rails 中是什么意思?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicates:classCansomeonepleaseexplainclass我想知道class是什么意思声明在模型类中意味着什么?它里面的语句和外面的语句有什么不同。例如:classPost什么是class什么意思?方法search(q)之间有什么区别?和search2(qq)?

ruby 摩卡 : is there an equivalent to rspec-mocks' #and_call_original?

Rspec-mocks具有expect(some_object).toreceive(:some_method).and_call_original。我可以用Mocha做这个吗?如果可以,怎么做?some_object.expects(:some_method).......什么? 最佳答案 我相当确定没有办法做到这一点。浏览sourcecode,有评论提到完全替换了原来的方法。#Theoriginalimplementationofthemethodisreplacedduringthetestandthenrestoredatt

Ruby 单例方法 (class_eval, define_method) vs (instance_eval, define_method)

Ruby中的元编程很棒,因为我经常使用它来模拟基于原型(prototype)的编程,并快速编写一些问题的原型(prototype)解决方案来测试它们的可行性。所以我想知道下面这段代码是否有本质区别:(class和(class代码的两个版本都定义了一个单例方法,我还没有遇到任何迫使我选择(instance_eval,define_method)组合而不是(class_eval,define_method)组合来定义单例方法,我想知道两者之间是否存在一些本质区别。 最佳答案 define_method没有区别。但是当您使用def时会有所

ruby-on-rails - 从父类(super class)调用子类方法

前言:这是在Rails应用程序的上下文中。然而,这个问题是特定于Ruby的。假设我有一个Media对象。classMedia我在几个子类中扩展了它:classImage在Media类中,我想从适当的子类中调用show的实现。因此,对于Media,如果self是一个Video,那么它将调用Video的show方法。如果self是Image,它将调用Image的show方法。我有Java背景,首先想到的是“在父类(superclass)中创建一个抽象方法”。但是,我在多个地方(包括StackOverflow)读到抽象方法并不是在Ruby中处理此问题的最佳方式。考虑到这一点,我开始了rese

ruby - 全新安装 OSX 10.9.1 在尝试安装 gems 时返回 "undefined method ` path2class'"

我刚刚使用Homebrew和RVM安装了一个干净的Mavericks安装。brewdoctor和rvmrequirements都返回“allgood”,但是,当我在我的项目目录中运行bundleinstall时,我的大多数gem安装都很好,但少数安装失败并出现相同的以下错误:Bundler::GemspecError:Couldnotreadgemat/Users/NK/.rvm/gems/ruby-2.0.0-p353/cache/eventmachine-1.0.3.gem.Itmaybecorrupted.Anerroroccurredwhileinstallingeventma

ruby-on-rails - CanCan load_and_authorize_resource 触发 Forbidden Attributes

我有一个使用强参数的标准RESTfulController。classUsersController在我的config/initializers中,我有文件strong_parameters.rbActiveRecord::Base.send(:include,ActiveModel::ForbiddenAttributesProtection)当我向CanCan的load_and_authorize_resource添加一个简单的调用时,我得到了1)UsersControllerPOSTcreatewithinvalidparamsre-rendersthe'new'template