ActiveRecord::Base.transaction do
Foo.new.bar
end
Foo.new.baz
Run Code Online (Sandbox Code Playgroud)
我可以从内部决定程序bar()或baz()方法,如果交易已经发生?寻找的东西可能看起来像
ActiveRecord::Base.within_transaction?,这将返回true从调用时bar()和false时呼吁baz().
如果它是相关的,我正在使用mysql数据库与mysql2 gem,并且可以使用仅适用于mysql的解决方案.
我有以下javascript重定向代码,后面跟着一些代码.
window.location.href = '/someurl';
alert('hello');
alert('hello again');
Run Code Online (Sandbox Code Playgroud)
这会导致浏览器不一致.
在Firefox中,第一个警报在重定向之前可以在瞬间显示.根本看不到第二个警报.
在chrome中,两个警报都会弹出,只有在两个警报都单击"确定"后才会发生重定向.
在重定向之后可以解决这些差异的代码有什么概念吗?如果重定向是异步的,那么chrome在做什么?我想了解发生了什么,以便我可以确定在更复杂的情况下要做什么,其中重定向深埋在一些回调和其他逻辑中.
javascript firefox google-chrome cross-browser window.location
我正在设计一个API,并使用Backbone.js来使用它.API的一部分将包括搜索操作.例如,在搜索汽车时,我可能会遇到以下情况:
http://api.mysite.com/search/cars?q=volvo
Run Code Online (Sandbox Code Playgroud)
有了骨干,我可以看到两种消费结果的选择.
选项1:搜索是集合
var CarSearch = Backbone.Collection.extend({
model: Car,
initialize : function(models, options){
this.query = options.query;
},
url: function(){
return "http://api.mysite.com/search/cars?q="+this.query;
}
});
var volvos = new CarSearch([], {query:'volvo'});
volvos.fetch();
Run Code Online (Sandbox Code Playgroud)
选项2:搜索是模型,结果是集合
var CarSearchResults = Backbone.Collection.extend({
model: Car
});
var CarSearch = Backbone.Model.extend({
defaults: {
"query":"",
"carSearchResults":null
},
url: function(){
return "http://api.mysite.com/search/cars?q="+this.get('query');
},
parse: function(resp,xhr){
resp.carSearchResults = new CarSearchResults(resp.carSearchResults);
return resp;
}
});
var volvoSearch = new CarSearch();
volvoSearch.set({query:'volvo'});
volvoSearch.save();
Run Code Online (Sandbox Code Playgroud)
这些选项有哪些优点/缺点?有没有骨干式的设计方法?
我倾向于选项2,因为似乎更容易在响应中添加内容,如分页细节或下一个URL.但是选项2在某些方面看起来更加混乱.例如,在保存时,我会在服务器上为搜索模型生成一个ID吗?不要以为我需要通过ID获取该模型,删除或更新它并不是真的有意义,因为我没有坚持它.
我正在研究使用Heroku作为使用Redis的PHP应用程序.我见过redis的各种插件.例如,使用Redis To Go,您可以在PHP代码中使用环境变量$ _ENV ['REDISTOGO_URL']作为Redis服务器的URL.
大多数这些附加产品都有自己的定价方案,我想避免.我对heroku如何工作有点困惑.有没有办法可以在没有插件的情况下在我自己的Dynos上安装Redis?
例如,有一个工作器dyno充当服务器,另一个充当客户端吗?如果可能的话,我将如何进行:
在Dyno上安装和运行redis服务器?这与在任何其他unix盒子上安装一样吗?我可以ssh到它并安装我想要的任何东西吗?
让一个Dyno通过TCP与IP /端口连接到另一个?工作人员是否拥有自己可以参考的IP地址或我可以使用的命名URL?我能以某种方式从PHP动态获取它们吗?
redis客户端的php代码假设有一个主机和端口可以连接到,但不知道它会是什么?
$redis = new Predis\Client(array(
"scheme" => "tcp",
"host" => $host, //how do i get the host/port of a dyno?
"port" => $port));
Run Code Online (Sandbox Code Playgroud) 是否有针对个别佣金任务的标准帮助命令?
rake -h 显示rake的选项.
rake -D 描述了rake任务.
rake mytask 运行mytask.
是否有类似的东西rake -h mytask会描述mytask,并列出其可选和/或必需的参数?
例如,以下代码将在rails中运行单个测试:
rake test TEST=path_to_test
Run Code Online (Sandbox Code Playgroud)
如何发现TEST = path_to_test是rake test的可选参数?
ruby ×2
activerecord ×1
backbone.js ×1
firefox ×1
heroku ×1
javascript ×1
mysql ×1
php ×1
rake ×1
rake-task ×1
redis ×1
rest ×1
transactions ×1