Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在带有lambda的字符串上创建Xml_Ruby On Rails_Ruby_Xml_Activesupport - Fatal编程技术网

Ruby on rails 在带有lambda的字符串上创建Xml

Ruby on rails 在带有lambda的字符串上创建Xml,ruby-on-rails,ruby,xml,activesupport,Ruby On Rails,Ruby,Xml,Activesupport,为什么关于Hash::To_xml的第二个示例被传递一个lambda 当我运行它时: "es".to_xml(lambda { |options, key| options[:builder].b(key) }) *** NoMethodError Exception: undefined method `to_xml' for "es":String 您提供的文档中回答了您的第一个问题:“如果值是可调用对象,则它必须包含一个或两个参数。根据arity的不同,可调用对象将使用选项哈希

为什么关于Hash::To_xml的第二个示例被传递一个lambda

当我运行它时:

"es".to_xml(lambda { |options, key| options[:builder].b(key) }) 
*** NoMethodError Exception: undefined method `to_xml' for "es":String   

您提供的文档中回答了您的第一个问题:“如果值是可调用对象,则它必须包含一个或两个参数。根据arity的不同,可调用对象将使用选项哈希作为第一个参数,键为:root,键为singularized作为第二个参数。可调用对象可以使用选项[:builder]添加节点。”“当我运行它时”? 你从哪里运行它?从一个控制器中的一个断点在阅读了文档之后,它的意思实际上是调用像
{“es”=>lambda{options,key}options[:builder].b(key)}.to_xml
其中
es
是键,lambda是
对象。这将生成
=>“\n\n e\n\n”
,它会奇怪地将“s”放在“es”中(可能是因为它认为“es”是复数??)@enginersmnky谢谢!您提供的文档中回答了您的第一个问题:“如果值是可调用对象,则它必须包含一个或两个参数。根据arity的不同,可调用对象将使用选项哈希作为第一个参数,键为:root,键为singularized作为第二个参数。可调用对象可以使用选项[:builder]添加节点。”“当我运行它时”? 你从哪里运行它?从一个控制器中的一个断点在阅读了文档之后,它的意思实际上是调用像
{“es”=>lambda{options,key}options[:builder].b(key)}.to_xml
其中
es
是键,lambda是
对象。这将生成
=>“\n\n e\n\n”
,它会奇怪地将“s”放在“es”中(可能是因为它认为“es”是复数??)@enginersmnky谢谢!
"es".to_xml(lambda { |options, key| options[:builder].b(key) }) 
*** NoMethodError Exception: undefined method `to_xml' for "es":String