小编use*_*729的帖子

如何判断是否已经在ruby on rails中的数据库事务中?

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的解决方案.

ruby mysql activerecord transactions ruby-on-rails

30
推荐指数
2
解决办法
6357
查看次数

javascript重定向(设置window.location.href)后代码会发生什么?

我有以下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

25
推荐指数
2
解决办法
5683
查看次数

如何使用骨干设计REST搜索

我正在设计一个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获取该模型,删除或更新它并不是真的有意义,因为我没有坚持它.

rest backbone.js

15
推荐指数
2
解决办法
7638
查看次数

如果没有插件,Heroku上的redis可能吗?

我正在研究使用Heroku作为使用Redis的PHP应用程序.我见过redis的各种插件.例如,使用Redis To Go,您可以在PHP代码中使用环境变量$ _ENV ['REDISTOGO_URL']作为Redis服务器的URL.

大多数这些附加产品都有自己的定价方案,我想避免.我对heroku如何工作有点困惑.有没有办法可以在没有插件的情况下在我自己的Dynos上安装Redis?

例如,有一个工作器dyno充当服务器,另一个充当客户端吗?如果可能的话,我将如何进行:

  1. 在Dyno上安装和运行redis服务器?这与在任何其他unix盒子上安装一样吗?我可以ssh到它并安装我想要的任何东西吗?

  2. 让一个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)

php heroku redis

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

如何获得特定佣金任务的帮助?

是否有针对个别佣金任务的标准帮助命令?

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 rake ruby-on-rails rake-task

5
推荐指数
2
解决办法
2397
查看次数