这应该很简单,但它正在爆炸.有任何想法吗?
d = BigDecimal.new("2.0")
YAML::load({:a => d}.to_yaml)
TypeError: BigDecimal can't be coerced into BigDecimal
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:86:in `inspect'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:86:in `inspect'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:86:in `block in <module:IRB>'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:30:in `call'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/inspector.rb:30:in `inspect_value'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/context.rb:260:in `inspect_last_value'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:311:in `output_value'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:160:in `block (2 levels) in eval_input'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
from /Users/benjohnson/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:70:in `block in …Run Code Online (Sandbox Code Playgroud) 我搜索了一个简单的解决方案的高低.没有一个是简单的或"只是工作".
首先,我不断收到此错误:
ArgumentError: invalid byte sequence in US-ASCII
Run Code Online (Sandbox Code Playgroud)
这是因为用户正在从Microsoft Word复制和粘贴内容.我只想要一种方法来清理用户输入,以便它以适当的格式存储在数据库中,无论它们发送给我的格式如何.即使它完全破坏了他们的输入,我也不关心它.我只是想强制将他们的输入编码为以后不会抱怨的东西.
我试过了:
ic = Iconv.new('US-ASCII//IGNORE', 'US-ASCII')
safe_string = ic.iconv(unsafe_string)
Run Code Online (Sandbox Code Playgroud)
执行上述操作并重新保存新字符串后,错误仍然存在.我试过了
safe_string = unsafe_string.force_encoding('US-ASCII')
Run Code Online (Sandbox Code Playgroud)
仍然给我错误.
我也尝试过使用UTF-8.一样.
在保存到数据库之前,我能做些什么来简单地转换它们的字符串吗?谢谢.
我在创建时有一个PostgreSQL触发器,它基本上将插入重定向到子表.一旦我插入记录,我想要中止请求以避免重复数据.我知道的唯一方法就是返回NULL触发器.问题是我需要返回记录,以便我可以获取ID.如果我回来NULL,我得到... NULL.
任何想法我怎么能有一个触发器中止一个操作,同时仍然返回其他东西NULL?
所以我通过Homebrew安装了Postgresql,看起来像contrib目录丢失了.我读过安装Trigram的所有教程都需要这个.
$ cd /usr/local/Cellar/postgresql/9.1.2/share/postgresql/contrib
-bash: cd: /usr/local/Cellar/postgresql/9.1.2/share/postgresql/contrib: No such file or directory
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我正确的方向来安装Trigram(pg_trgm.sql)?我迷失在这里.
谢谢.
我正在尝试使用jquery在页面上查找所有文本节点.但无论我选择哪个元素,nodeType始终为1:
$.each($('*'), function(index, el) { console.log(el.nodeType) });
Run Code Online (Sandbox Code Playgroud)
这导致控制台中只输出"1".并证明页面上有一个"文本节点":
$('p:first').html()
=> "
I'm text
"
$('p:first')[0].nodeType
=> 1
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?我正在使用safari 5.0.4.我在firefox 3.6.12中得到了相同的结果.
谢谢.
所以这是一个有趣的问题.我发布到一个Web服务,我得到的请求URI太长了.jQuery似乎将我的数据附加到URL:
// this is dynamically generated, and can get very long
var s = 'q=string1&q=string2';
$.ajax({
type: 'POST',
url: 'https://www.googleapis.com/language/translate/v2?',
data: s,
dataType: 'jsonp'
});
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
data: {data: s}
Run Code Online (Sandbox Code Playgroud)
一样.
棘手的部分是我需要翻译多个项目.Google要求您多次传递'q'变量.不是数组,而是多次相同的参数.这看起来很棒.因此,消除了使用json对象,因为你不能拥有两次相同的密钥.因此我必须传递一个字符串.
知道如何实现这一点并获取请求体中的数据而不是URI吗?
谢谢.
jquery ×2
postgresql ×2
ruby ×2
bigdecimal ×1
dom ×1
homebrew ×1
javascript ×1
module ×1
plpgsql ×1
post ×1
triggers ×1
yaml ×1