我在Rails应用程序中编写了自定义检测.我在这样的config/initializers/instrumentation.rb文件中启用它:
ActiveSupport.on_load(:action_controller) do
include FooBar::ControllerRuntime
end
Run Code Online (Sandbox Code Playgroud)
但这导致我出错A copy of FooBar::ControllerRuntime has been removed from the module tree but is still active!.我弄清楚我可以通过两种方式解决它:
is defined toconfig.autoload_one_paths`:to_prepare回调ActionController::Railtie第二个解决方案如下所示:
config.to_prepare do
ActionController.include FooBar::ControllerRuntime
end
Run Code Online (Sandbox Code Playgroud)
这个漫长的介绍引出了一个问题:哪种方式更好?首先,我禁止重新加载与我的路径相同的类FooBar::ControllerRuntime.有了第二个,我觉得搞砸是不好的ActionController::Railtie.正确的知道ActionController::Railtie没有定义,to_prepare但如果在下一个版本中会发生什么?
我想在后台运行一些应用程序,然后通过pid杀死它.
pipe = IO.popen("firefox 'some_url' 2>&1 &")
pipe.pid
Run Code Online (Sandbox Code Playgroud)
这段代码启动firefox并返回一些pid,但不幸的是它不是firefox的pid.
pipe = IO.popen("firefox")
pipe.pid
Run Code Online (Sandbox Code Playgroud)
这段代码启动firefox并返回mi一些pid,firefox的pid.是否有任何解决方案来启动外部应用程序并获得其pid?Firefox只是例如它可以是任何其他应用程序.我也试过像libs那样:Open3和Open4,但似乎效果相同.我也想知道'$!' bash变量对此有好的解决方案吗?在后台运行一些东西并读'$!',你怎么看?
当我运行我的rails控制台时,我得到了这样的东西:
Loading development environment (Rails 3.2.3)
/Users/sebastiannowak/.rvm/gems/jruby-1.6.7@global/gems/bundler-1.1.0/lib/bundler.rb:254 warning: shadowing outer local variable - path
Switch to inspect mode.
Time.now
Time.now
2012-06-27 09:27:21 +0200
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我可以与控制台进行交互,但它非常不舒服.我运行JRuby 1.6.7.有人有这样的问题吗?
我正在使用monger从我的Clojure简单应用程序中获取并保存MongoDb中的一些数据.我有很强的Ruby on Rails背景,所以我熟悉每个环境的数据库设置(开发,测试,生产).我希望在Clojure中有类似的东西.如何将环境添加到我的代码中?我想用Clojure方式,代码作为数据,没有任何yaml文件.如果它发生变化,我正在使用Leiningen.
我有一个字符串:
"1|2 3 4 oh 5 oh oh|e eewrewr|7|".
Run Code Online (Sandbox Code Playgroud)
我想得到第一个管道(|)之间的数字,返回"2 3 4 5".
任何人都可以帮助我使用正则表达式来做到这一点吗?
如何测试使用会话的 Sinatra 应用程序?
get "/", {}, {'rack.session' => { 'foo' => 'blah' } }
Run Code Online (Sandbox Code Playgroud)
这段代码对我不起作用,我在我的应用程序中有“启用:会话”。
Ext.data.Storefind方法的文档说:
通过特定字段值查找此商店中第一个匹配记录的索引.
我的问题是如何在这个商店中找到所有匹配记录的索引?
我有类似的辅助方法:
def my_helper(builder, name, order)
options = {
builder.search_key => builder.search_attributes.merge('sort' => order)
}
link_to name, url_for(options)
end
Run Code Online (Sandbox Code Playgroud)
Helper 向当前 url 和构建链接添加了一些参数(这里是简化示例)。当我尝试使用 RSpec 测试此方法时,出现异常ActionController::RoutingError: No route matches {:search=>{"sort"=>"published_at.asc"}}。如何存根当前链接、路径、控制器、动作?
user=> (.. Runtime getRuntime availableProcessors)
2
Run Code Online (Sandbox Code Playgroud)
并评估此示例:http://clojuredocs.org/clojure_core/clojure.core/pmap#example_684我得到
user=> (time (doall (map long-running-job (range 4))))
"Elapsed time: 12000.621 msecs"
(10 11 12 13)
user=> (time (doall (pmap long-running-job (range 5))))
"Elapsed time: 3000.454 msecs"
(10 11 12 13 14)
user=> (time (doall (pmap long-running-job (range 32))))
"Elapsed time: 3014.969 msecs"
(10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 …Run Code Online (Sandbox Code Playgroud) 我有mongomapper协会的问题.我有一个类名User和其他名为Model的.用户有很多型号,但......
user = User.first
=> <User ...
user.models
=> []
Model.find_by_user_id(user.id.to_s)
=> <Model ...
Model.find_by_user_id(user.id.to_s).user == user
=> true
Run Code Online (Sandbox Code Playgroud)
类代码(简化):
class User
include MongoMapper::Document
# some keys definition
many :models
end
class Model
include MongoMapper::Document
# some keys definitions
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我有一些函数可以从传递的映射返回一些键的最大值.我希望0在传递集合为空时返回.当然我可以使用一些条件,但想知道是否有更先进的技术呢?
(defn max-id [c]
"Using as: (max-id [{ :id 1 }, { :id 2 }])"
(if (empty? c)
0
(apply max (map :id c))))
;;;
(max-id []) => 0
(max-id [map-one map-two]) => 1024
Run Code Online (Sandbox Code Playgroud)