小编use*_*146的帖子

带有活动记录的 rails 控制台中的线程在数据库中找不到模型

我正在使用 Rails 3 和 Ruby 1.9。

我在各种 Rails 测试(和控制台)中运行 2 种方法。方法被调用index_casesindex_new_cases方法体如下所示。该index_new_cases方法的内容可能不相关(我正在使用 Sunspot gem 索引 ModelCase 信息),但为了完整性我将其保留在那里。

我有 3 case_numbers。每个case_number匹配ModelCase数据库中的一个(即数据库中有 3ModelCase条记录)。

当我使用这 3 个case_numbersindex_cases方法运行测试时,该index_new_cases方法不会使用该ModelCase.where…方法检索任何案例。但是,如果我删除方法中的“线程”调用index_cases,该index_new_cases函数现在会检索所有 3 个案例并正确索引它们。

谁能向我解释为什么我的线程找不到数据库记录?我的线程实现是错误的吗?谢谢!

  def index_cases(case_numbers)
    threads = []
    case_numbers.each_slice(500) do |slice_of_case_numbers|
      threads << Thread.new(slice_of_case_numbers) do |a_slice|
        index_new_cases(a_slice)
      end
    end
    threads.each {|thr| thr.join}
  end

  def index_new_cases(case_numbers)
    cs = ModelCase.where(case_number: case_numbers).includes(:child_tables)
    puts cs.size # …
Run Code Online (Sandbox Code Playgroud)

ruby multithreading ruby-on-rails thread-safety

5
推荐指数
1
解决办法
2067
查看次数

vim上的映射抛出一个错误(E10:\后跟/,?或&)

嗨,我正在使用MacVim 7.3我正在关注一个名为smash to Peim的PeepCode教程.

其中一个主题是为某些命令分配各种"映射"(我将它们视为快捷方式或别名).

例如,这是我的一部分.vimrc文件(见下文)帮助文件说默认情况下被指定为反斜杠(\).但是,当我进入命令行模式并键入:\ tt时,我收到以下错误:

E10:\应该跟/,?要么 &

对我做错了什么的想法?我可以告诉macvim b/c我正在使用我的.vimrc文件我使用该文件来交换分号和冒号绑定现在; 将导致编辑器进入命令行模式.

" Tab mappings.
map <leader>tt :tabnew<cr>
map <leader>te :tabedit
map <leader>tc :tabclose<cr>
map <leader>to :tabonly<cr>
map <leader>tn :tabnext<cr>
map <leader>tp :tabprevious<cr>
map <leader>tf :tabfirst<cr>
map <leader>tl :tablast<cr>
map <leader>tm :tabmove


" Controversial...swap colon and semicolon for easier commands
nnoremap ; :
nnoremap : ;

vnoremap ; :
vnoremap : ;
Run Code Online (Sandbox Code Playgroud)

vim

5
推荐指数
1
解决办法
1406
查看次数

ruby的send方法是否有客观的c"等价"?

我不确定这是否可行,但在ruby中,您可以使用send动态调用方法

例如,如果我想调用对象的bar方法,foo,我可以使用

foo.send("bar")
Run Code Online (Sandbox Code Playgroud)

有没有办法用objective-c做类似的事情?

TKS!

ruby iphone objective-c

4
推荐指数
1
解决办法
383
查看次数

用于Android的小ProgressDialog"微调器"

我已经能够使用标准的"ProgressDialog"for android来显示一个不确定的任务正在运行. 替代文字

但是我想使用"较小"的进度对话框"spinner",它用于一些标准Android应用程序中的不确定任务,例如android Market(有一个小旋转圈实际上集成到应用程序窗口中(而不是浮动)在它的上面).替代文字

有谁知道如何创建较小的进度对话框(或者有人能指出我正确的方向)?

layout android progressdialog

4
推荐指数
1
解决办法
5830
查看次数

使用Nokogiri获取包含特定属性名称的元素中的所有节点

我想用引入nokogiri提取所有节点中包含特定属性名的元素.

例如,我想在下面的文档中找到包含属性"blah"的2个节点.

@doc = Nokogiri::HTML::DocumentFragment.parse <<-EOHTML
<body>
  <h1 blah="afadf">Three's Company</h1>
  <div>A love triangle.</div>
   <b blah="adfadf">test test test</b>
</body>
EOHTML
Run Code Online (Sandbox Code Playgroud)

我发现这个建议(下)在这个网站:http://snippets.dzone.com/posts/show/7994,但它并不在本例中返回到上面的2个节点.它返回一个空数组.

# get elements with attribute:
elements = @doc.xpath("//*[@*[blah]]")
Run Code Online (Sandbox Code Playgroud)

关于如何做到这一点的想法?

谢谢!我在这里找到了这个

ruby xml xpath nokogiri

4
推荐指数
1
解决办法
6153
查看次数

当#对是变量时,正则表达式将字符串分成"键"/"值"对?

我正在使用Ruby 1.9,我想知道是否有一个简单的正则表达方式来做到这一点.

我有很多字符串看起来像这样的一些变化:

str = "Allocation:  Random, Control:  Active Control, Endpoint Classification:  Safety Study, Intervention Model:  Parallel Assignment, Masking:  Double Blind (Subject, Caregiver, Investigator, Outcomes Assessor), Primary Purpose:  Treatment"
Run Code Online (Sandbox Code Playgroud)

我的想法是,我想将这个字符串分解为其功能组件

  • 分配:随机
  • 控制:主动控制
  • 终点分类:安全性研究
  • 干预模式:并行分配
  • 掩蔽:双盲(主题,看护人,调查员,结果,评估员)
  • 主要目的:治疗

字符串的"语法"是存在"密钥",其由一个或多个"单词或其他字符"(例如干预模型)组成,后跟冒号(:).每个键都有一个相应的"值"(例如,并行赋值),紧跟在冒号(:)之后......"值"由单词,逗号(无论如何)组成,但"值"的结尾用逗号表示.

键/值对的数量是可变的.我还假设冒号(:)不允许成为"值"的一部分,并且逗号(,)不允许成为"键"的一部分.

人们会认为有一种"regexy"方法可以将其分解为组件,但我尝试制作一个合适的匹配正则表达式只会选择第一个键/值对,而我不确定如何捕获其他键.关于如何捕捉其他比赛的任何想法?

 regex = /(([^,]+?): ([^:]+?,))+?/
=> /(([^,]+?): ([^:]+?,))+?/
irb(main):139:0> str = "Allocation:  Random, Control:  Active Control, Endpoint Classification:  Safety Study, Intervention Model:  Parallel Assignment, Masking:  Double Blind (Subject, Caregiver, Investigator, Outcomes Assessor), Primary Purpose:  Treatment"
=> "Allocation: …
Run Code Online (Sandbox Code Playgroud)

ruby regex string

3
推荐指数
1
解决办法
1435
查看次数

UIActivityIndi​​catorView在网页请求之前和之后开始/停止

我正在使用objective-c和iphone 3.0 sdk

我想检索URL(网页或pdf)的内容并在其中显示 UIWebView

似乎要做的事情是这样的:

NSURLRequest *requestObject = [NSURLRequest requestWithURL:myURL];
[myUIWebView loadRequest:requestObject];
Run Code Online (Sandbox Code Playgroud)

除了1件事之外,这种方法效果很好.

有些情况下请求需要一段时间(比方说5-10秒).我有一个UIActivityIndi​​catorView,我想在加载请求的开始和结束时"开始"和"停止".

但是,如果我这样做

[busySignal startAnimating];
NSURLRequest *requestObject = [NSURLRequest requestWithURL:myURL];
[myUIWebView loadRequest:requestObject];
[busySignal stopAnimating];
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为loadRequest调用是异步完成的,因此我的UIActivityIndi​​catorView几乎立即停止

有没有办法在URL请求的开头和结尾开始/停止我的"busySignal"?

作为替代方案,我认为这可以通过NSURLConnection完成,它给我回调函数"connectionDidFinishLoading:"

但我似乎无法弄清楚如何从NSURLConnection转到显示网页.

所以,我猜这是两个问题.

1.您可以在调用loadRequest的开头/结尾处启动/停止UIActivityIndi​​catorView: 2.如何使用NSURLConnection检索URL的内容并在UIWebView上显示信息?

谢谢!

iphone objective-c uiwebview

1
推荐指数
1
解决办法
4773
查看次数

java String.replaceAll正则表达式问题

我有一个包含以下文本的字符串

String my_string = "hello world. it's cold out brrrrrr! br br";
Run Code Online (Sandbox Code Playgroud)

我想替换每个隔离 BR<br />

问题是我想避免将字符串转换为

"hello world. it's cold out <br />rrrrr! <br /> <br />";
Run Code Online (Sandbox Code Playgroud)

我想做的是将字符串(使用replaceAll)转换为

"hello world. it's cold out brrrrrr! <br /> <br />";
Run Code Online (Sandbox Code Playgroud)

我确信这很简单,但我的正则表达式是不正确的.

my_string.replaceAll("\\sbr\\s|\\sbr$", "<br />");
Run Code Online (Sandbox Code Playgroud)

我的正则表达式应该找到'空白''b''r''空白'或''空格''b''r''行尾'

但它错过了我的字符串中的最后一个"br"

"hello world. it's cold out brrrrrr!<br />br"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么??TKS!

java regex string replaceall

0
推荐指数
1
解决办法
1733
查看次数