Я просто улучшил динамическую сортировку Ege Özcan для погружения глубоко внутри объектов. Если Data выглядит так:
obj = [
{
a: { a: 1, b: 2, c: 3 },
b: { a: 4, b: 5, c: 6 }
},
{
a: { a: 3, b: 2, c: 1 },
b: { a: 6, b: 5, c: 4 }
}];
, и если вы хотите отсортировать его по свойствам a.a, я думаю, что мое улучшение помогает очень хорошо. Я добавляю новую функциональность к таким объектам:
Object.defineProperty(Object.prototype, 'deepVal', {
enumerable: false,
writable: true,
value: function (propertyChain) {
var levels = propertyChain.split('.');
parent = this;
for (var i = 0; i < levels.length; i++) {
if (!parent[levels[i]])
return undefined;
parent = parent[levels[i]];
}
return parent;
}
});
и изменил функцию return_dynamicSort : И теперь вы можете сортировать по a.a. следующим образом: См. Commplete script in JSFiddle return function (a,b) {
var result = ((a.deepVal(property) > b.deepVal(property)) - (a.deepVal(property) < b.deepVal(property)));
return result * sortOrder;
}
obj.sortBy('a.a');
консоль rails никогда не записывает в файл журнала, но вы можете достичь этого довольно легко, например, если вы выполните следующую команду после запуска консоли rails
ActiveRecord::Base.logger = Logger.new STDOUT
rails будут записывать все операторы SQL в стандартный вывод , таким образом, отобразить их в вашем терминале. и поскольку Logger.new
принимает любой поток в качестве первого аргумента, вы можете просто позволить ему записать в rails development.log:
ActiveRecord::Base.logger = Logger.new File.open('log/development.log', 'a')
Я нахожусь в Rails 2.3.8, приведенный выше ответ мне не подходит.
ActiveRecord::Base.logger = Logger.new STDOUT
На самом деле работает следующее:
ActiveRecord::Base.connection.instance_variable_set :@logger, Logger.new(STDOUT)
Ссылка http://www.shanison.com/2012/03/05/show-sql-statements-in-rails- консоль /