启动服务器时,我在更新到Ruby 1.9后得到这个奇怪的错误:
"[BUG]跨线程违规rb_gc()ruby 1.8.6(2008-08-11)[i386-mswin32]
此应用程序已请求Runtime以不寻常的方式终止它.有关更多信息,请联系应用程序的支持团队."
我的mongrel版本是1.1.6,应该与Ruby 1.9兼容.我还有Ruby 1.8.6安装,所以我认为由于某种原因,mongrel试图访问并杀死ruby?我的rails版本是2.3.4,以防万一.
我有一个包含许多用于用户输入的文本框的表单(这是在一个用户表单中,而不是在电子表格中)。我有几个与货币相关的框,我需要它们在用户在框中输入标准时显示逗号和小数点。到目前为止,我在网上找到了一堆相同的公式,但是当我在框中输入我的数字时,它与 4.00 一致(如果我先点击 4),然后我可以更改的是第二个 0。这是我看到的类似内容在线的:
textbox1 = format(textbox1, "$#,##0.00")
Run Code Online (Sandbox Code Playgroud)
也看到了一些与 cDbl
无论我尝试什么,它都不会让我输入比我输入的第一个数字更多的任何内容。我需要帮助。谢谢!
编辑:非常有用的答案 - 谢谢你!更多关于那个讨厌的输入文件.字段数是可变的,位置已经改变了几次 - 我当前的脚本通过分析标题行来确定内容(好吧,fastcsv和一个狡猾的转换器这样做).因此,如果没有多个版本的加载文件,直接上传和后期处理SQL将无法运行,这很糟糕.它也是一个德国的CSV文件:用冒号分隔(没什么大不了的)和用逗号表示的小数(相当大的交易,除非我们加载为VARCHAR和文本处理之后 - 呃).
以大约7 /秒的速度装载200万行将需要超过24小时!这可能是日常流程的一个缺点,更不用说用户希望能够以CSV格式提供大约5个小时后才能访问数据!
我考虑过每次网络访问应用多个插入:相当笨拙的INSERT ALL...语法很好,除了目前我正在使用一个序列为每一行应用一个唯一的id.它发生了这一点
INSERT ALL
INTO tablea (id,b,c) VALUES (tablea_seq.nextval,1,2)
INTO tablea (id,b,c) VALUES (tablea_seq.nextval,3,4)
INTO tablea (id,b,c) VALUES (tablea_seq.nextval,5,6)
SELECT 1 FROM dual;
Run Code Online (Sandbox Code Playgroud)
(我说它是笨拙的吗?)尝试对所有三行使用相同的id.Oracle docus似乎证实了这一点.
最新的尝试是在一次执行中发送多个INSERT,例如:
INSERT INTO tablea (id,b,c) VALUES (tablea_seq.nextval,1,2);
INSERT INTO tablea (id,b,c) VALUES (tablea_seq.nextval,3,4);
INSERT INTO tablea (id,b,c) VALUES (tablea_seq.nextval,5,6);
Run Code Online (Sandbox Code Playgroud)
我还没有办法说服甲骨文接受这一点.
无论出于何种原因,我更喜欢让我的代码尽可能不受特定于平台的构造的影响:出现这个问题的一个原因是我正在从MySQL迁移到Oracle; 由于地理原因,可能有一天会发生另一次移动,我无法确定该平台.因此,使我的数据库库可以使用文本SQL命令来实现合理的扩展是有吸引力的,并且PL/SQL块实现了这一点.现在,如果出现另一个平台,则更改将仅限于更改代码中的适配器:一个单行,很可能.
第一眼我认为erb接受任何Ruby代码,但我有这种奇怪的行为......
我有一个[我文章的标签]数组,我想为他们做一个很好的展示.所以我写的是这样的:
<ul>
<% @post.tags.each do |item| %>
<li>item</li>
<% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)
错误的输出如下所示:
<ul>
<li>item</li>
<li>item</li>
<li>item</li>
...
</ul>
Run Code Online (Sandbox Code Playgroud)
哪里错了?有关如何进行正确迭代的任何建议吗?
使用ruby,露营webframework,activerecord-2.1.1,我的db结构是......
create_table :Conf_posts do |t|
%w{title body username posttime hit passwd}.each do |col|
t.column :"#{col}", :string
end
end
Run Code Online (Sandbox Code Playgroud)
我想要每个用户名的总和
我有以下代码.
Post.find :all, :select => "username,sum(hit)", :from => "Conf_posts", :group => "username"
Run Code Online (Sandbox Code Playgroud)
我收到了以下结果.仅返回用户名:
[#<Conf::Models::Post username: "\352\260\225\355\230\201">, #<Conf::Models::Post username: "\353\215\225\352\267\234">, #<Conf::Models::Post username: "\353\225\214\355\230\270">, #<Conf::Models::Post username: "\353\263\264\353\236\214">, #<Conf::Models::Post username: "\354\230\201\352\262\275">, #<Conf::Models::Post username: "\354\232\260\353\236\214">, #<Conf::Models::Post username: "\354\235\270\354\204\235">, #<Conf::Models::Post username: "\354\240\225\355\231\224.">, #<Conf::Models::Post username: "\355\230\201\354\235\264">]
Run Code Online (Sandbox Code Playgroud)
我无法同时收到用户名和用户名的总和
File.open(path, 'r').each do |line|
row = line.chomp.split('\t')
puts "#{row[0]}"
end
Run Code Online (Sandbox Code Playgroud)
path 是具有名称,年龄,职业,爱好等内容的文件路径
我期待输出只是名字,但我得到整条线.
为什么会这样?
我在控制器中有一个动作:
def user_detail
@user_detail = UserDetail.find_by_id(11)
end
Run Code Online (Sandbox Code Playgroud)
在视图中:
<%= @user_detail -%> // displays me like #
Run Code Online (Sandbox Code Playgroud)
我试图检索@user_detail的内容:实际上哈希包含 {:empid=>"11111", :prjtname=>"aaaaa", :prjtrole=>"Developer"}
如何显示用户详细信息的empid和其他值?
我有一个救援块,它检查是否抛出了正确的异常,如下所示:
rescue Exception
if $!.to_s() != "myException"
Err("Unexpected error :" + $!)
end
else
Err("No error")
Run Code Online (Sandbox Code Playgroud)
$!.to_s()当我puts喜欢时,我包含如下大字符串:
puts $!.to_s()
Run Code Online (Sandbox Code Playgroud)
上述声明puts之前的输出if是:
myException \n
th sdfsj dsjhf sdfj \n
asdj jkds fdf j
Run Code Online (Sandbox Code Playgroud)
所以在if声明中我想比较输出中的第一行$!.to_s()和双引号中的字符串.
有任何建议如何解决这个问题?
我在单元格A1中有这些数据:
Majestic Properties Design District, LLC, Ste. 101, 35 NE 40TH ST, Miami, FL 33137
Run Code Online (Sandbox Code Playgroud)
还有一些具有这些格式的其他单元也可以解决,例如
Fortune International Realty Iriondo Ecker & Assoc. Inc., Ste 25, 260 Crandon Blvd, Key Biscayne, FL 33149
Run Code Online (Sandbox Code Playgroud)
我想要的输出是
Miami
Key Biscayne
Run Code Online (Sandbox Code Playgroud)
等等
为了得到Zip和State我做了
=RIGHT(A1,8)
Run Code Online (Sandbox Code Playgroud)
但是现在我需要得到这个城市(即最后两个逗号之间的文字).
我不想将TEXT用于COLUMN或任何VBA.我想用一个公式.
这是我的字符串......
[foo-1 param1 : value1, param2 : value2]
[foo-2 param1 : value1, param2 : value2, params3 : value3]
...
Run Code Online (Sandbox Code Playgroud)
我的目的是首先获得[]之间的所有序列,然后解析所有参数.我写了2个正则表达式,第一个应该得到[]之间的所有序列:
/\[([\w-]+)\s?([\w@.,:\s]*)\]/m
Run Code Online (Sandbox Code Playgroud)
第二个正则表达式应该解析我的所有参数
/([\w]+)\s?,?:\s?,?([\w@.-]+)/m
Run Code Online (Sandbox Code Playgroud)
我的问题是我总是得到第一场比赛,但我想得到所有的比赛.我试着这样做:
r = /\[([\w-]+)\s?([\w@.,:\s]*)\]/m
str = "[foo-1 param1 : value1, param2 : value2]
[foo-2 param1 : value1, param2 : value2, params3 : value3]"
m = r.match(str)
# #<MatchData "[foo-1 param1 : value1, param2 : value2]" 1:"foo-1" 2:"param1 : value1, param2 : value2">
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我解释为什么我的正则表达式只有第一场比赛即使有更多的比赛?我在rubular上测试它(这里:http://www.rubular.com/r/nTVE6M5om5 )似乎它有效.
我想在Rails应用程序中进行SQL查询,该应用程序在添加下拉菜单时添加条件.显然,如果未选择下拉列表,我不想使用空白条件进行搜索.如何在SQL语句中开发动态条件?
未经测试的例子:
未选择下拉列表时:Object.find("billy"::conditions => {})
选择下拉列表时:Object.find("billy"::conditions => {"last_name =>"johnson"})
谢谢您的意见!
sql search activerecord ruby-on-rails conditional-statements