草庐IT

json_class

全部标签

ruby - create_additions 选项在 JSON.parse 中有什么作用

我在ruby​​sJSON.parse文档中遇到了create_additions选项,但我似乎找不到任何关于它的文档。rdoc描述了选项:create_additions:Ifsettofalse,theParserdoesn'tcreateadditionsevenifamatchingclassand::create_idwasfound.Thisoptiondefaultstotrue.出于好奇,谁能解释一下这个选项的实际作用以及JSON.parse的这个“附加”功能到底是什么? 最佳答案 “添加”是对纯JSON的添加。如果

ruby - class Class - 实例与类方法

它是如何工作的?运行以下代码时,"hifromclass"会打印两次。ruby内部发生了什么使它表现得像这样?我实际上不是在为类创建实例方法吗classClassdeffooputs"hifromclass"endendClass.foox=Class.newx.foo 最佳答案 我不知道你是否意识到这一点,但是当你执行classClass...end时,你并没有创建一个名为Class,您正在重新打开现有类Class。由于Class是所有类都是其实例的类,这意味着Class是其自身的实例。因此,您可以直接在Class上调用Class

ruby - 类与 Class.new,模块与 Module.new

class之间有什么区别?和Class.new&module和Module.new?我知道:Class.new/Module.new创建一个匿名class/module.当我们第一次将它分配给常量时,它变成了那个class的名称。/module.class/module自动执行此操作。当我们想要继承时,我们可以传递一个参数:Class.new(ancestor).当我们不指定祖先时,它被设置为Object.class使用此语法:classAClass.new返回object.classA返回nil.同样适用于module秒。我错过了什么吗? 最佳答案

ruby - 父类(super class)不匹配、结构、重新加载和 Spork

假设有下面这个类#derp.rbclassDerp当我加载“./derp.rb”两次时,程序因TypeError:superclassmismatchforclassDerp而失败。好的,这可以通过require来管理。但是我如何为每次使用Spork的测试运行重新加载这些类?require显然不会工作,因为它会缓存加载的文件。 最佳答案 Struct.new正在为您的每次加载创建新类。irb(main):001:0>classTest1classTest1'您可以将返回的Struct.newclass保存到一个变量中,然后您可以使用

ruby-on-rails - JSON 到 ActiveRecord(反序列化)

我正在使用Ruby、Grape和ActiveRecord构建一个网络API。来自ASP.NETWebAPI我习惯于从JSON到类对象的自动模型绑定(bind),然后可以使用EntityFramework保存。我一直在搜索一下,看看在使用ActiveRecord时是否有类似的东西,但没有发现任何让我觉得我遗漏了一些非常明显的东西。将JSON反序列化为ActiveRecord模型的最佳方法是什么?更新Matts回答对简单类型非常有效,但是当我有关联时,我收到以下错误:ActiveRecord::AssociationTypeMismatch:Connector(#7029771166878

ruby-on-rails - ArgumentError : Unknown key: :conditions. 有效键是 : :class_name, :class, :foreign_key

在尝试rake:dbmigrate之后,我在终端中得到了这个错误rakeaborted!ArgumentError:Unknownkey::conditions.Validkeysare::class_name,:class,:foreign_key,:validate,:autosave,:table_name,:before_add,:after_add,:before_remove,:after_remove,:extend,:primary_key,:dependent,:as,:through,:source,:source_type,:inverse_of,:counter

ruby - 使用内置的 Ruby JSON 库反序列化 JSON 原语

为什么Ruby的内置JSON不能反序列化简单的JSON原语,我该如何解决这个问题?irb(main):001:0>require'json'#=>trueirb(main):002:0>objects=[{},[],42,"",true,nil]#=>[{},[],42,"",true]irb(main):012:0>objects.eachdo|o|irb(main):013:1*json=o.to_jsonirb(main):014:1>beginirb(main):015:2*pJSON.parse(json)irb(main):016:2>rescueException=>ei

ruby - 引发异常 : use instance or class?

我见过使用类引发异常的Ruby代码:raiseGoatException,"Maximumof3goatsperbumpercar."其他代码使用实例:raiseGoatException.new"Noleotardfoundsuitableforgoat."这两个都是以同样的方式获救的。是否有理由使用实例而不是类? 最佳答案 没有区别;在任何一种情况下都会实例化异常类。如果您提供一个字符串,作为new的参数或作为raise的第二个参数,它会被传递给initialize并且将成为异常实例的.message。例如:classGoatE

ruby-on-rails - JSON解码参数问题

我有一个使用postgresql的Rails4应用程序。我还有一个backbone.js应用程序,可将JSON推送到Rails4应用程序。这是我的Controller:defcreate@product=Product.new(ActiveSupport::JSON.decodeproduct_params)respond_todo|format|if@product.saveformat.json{renderaction:'show',status::created,location:@product}elseformat.json{renderjson:@product.erro

ruby - 你如何在 CHEF (ruby) 中创建漂亮的 json

您将如何制作具有人类可读json的erb模板?下面的代码有效,但它生成了一个平面json文件默认.rbdefault['foo']['bar']={:herp=>'true',:derp=>42}Recipe.rbtemplate"foo.json"dosource'foo.json.erb'variables:settings=>node['foo']['bar'].to_jsonaction:createendfoo.json.erb类似的SO问题Chefandrubytemplates-howtoloopthoughkeyvaluepairs?HowcanI"pretty"for