我们是一个将承包商与客户联系起来的市场.我们想为我们的承包商发布iOS应用程序(React Native),但我们不希望该应用程序位于公共App Store上.对于Android,我们使用Alpha通道功能,它为我们提供了一个链接,我们可以发送给人们下载应用程序.
我认为企业计划不适合我们,因为我们不能要求我们的承包商加入计划?
自定义B2B计划似乎不太适合,因为我们不销售或白标任何应用程序?
还有其他选择还是上述假设我错了?
我正在尝试记录我的sideqik工作者tail -f log/development.log
在开发和heroku logs
生产中使用的进度.
但是,工作人员内部的所有内容以及工作人员调用的所有内容都不会被记录.在下面的代码中,只记录了TEST 1.
如何记录worker中的所有内容以及worker调用的类?
# app/controllers/TasksController.rb
def import_data
Rails.logger.info "TEST 1" # shows up in development.log
DataImportWorker.perform_async
render "done"
end
# app/workers/DataImportWorker.rb
class DataImportWorker
include Sidekiq::Worker
def perform
Rails.logger.info "TEST 2" # does not show up in development.log
importer = Importer.new
importer.import_data
end
end
# app/controllers/services/Importer.rb
class Importer
def import_data
Rails.logger.info "TEST 3" # does not show up in development.log
end
end
Run Code Online (Sandbox Code Playgroud)
更新
我仍然不明白为什么Rails.logger.info
或Sidekiq.logger.info
不登录日志流.通过替换来实现Rails.logger.info
它puts
.
我有一个内联表单,旁边有一个搜索栏和一个搜索按钮.如何强制input-group
div跨越Bootstrap 4中的整个列,最好不使用自定义CSS?
<div class="container">
<div class="row">
<div class="col-md-12">
<form class="form-inline" action="/search" accept-charset="UTF-8" method="get">
<div class="input-group">
<input type="text" name="search" id="search" value="test" placeholder="Search accounts, contracts and transactions" class="form-control">
<span class="input-group-btn">
<input type="submit" name="commit" value="Search" class="btn btn-primary" data-disable-with="Search">
</span>
</div>
</form>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 如何删除您创建的对象(在数据库和内存中)
有自动执行此操作的方法吗?
我有以下问题:
每个测试都将条目保存到数据库中.然后,下一个测试取决于这些条目.即使我想构建依赖于其他测试的测试,我也不能,因为测试执行的顺序是不可控的.
factories.rb:
sequence(:name) { |n| "purchaser #{n}" }
Run Code Online (Sandbox Code Playgroud)
organization_spec.rb:
context "when no supplier exists" do
it "finds no associated suppliers" do
purchaser = create(:organization_purchaser)
purchaser.partners.empty?.should == true
end
end
context "when one supplier exists" do
it "finds one associated suppliers" do
purchaser = create(:organization_purchaser)
supplier = create(:organization_supplier)
partnership = create(:partnership, organization: purchaser, partner: supplier)
purchaser.partners.last.name.should == "purchaser 1"
end
end
context "when two suppliers exist" do
it "finds two associated suppliers" do
purchaser = create(:organization_purchaser) …
Run Code Online (Sandbox Code Playgroud) 我必须决定是否对hstore列使用GIN或GiST索引.
在Postgres的文档状态:
我解释它的方式,如果你需要查询很多,请使用GIN,如果你需要更新很多,请使用GiST.
在该测试中,证实了上述GIN相对于GiST的所有三个缺点.但是,除了Postgres文档中的建议外,GIN优于GiST(更快查找)的优势非常小.幻灯片53显示,在测试中,GIN仅比Postgres文档中建议的200%至300%快2%至3%.
哪种信息来源更可靠?为什么?
我是Node的新手,并创建了一个具有async/await语法的应用程序,如下所示:
const express = require('express');
const app = express();
const someLibrary = require('someLibrary');
function asyncWrap(fn) {
return (req, res, next) => {
fn(req, res, next).catch(next);
};
};
app.post('/getBlock', asyncWrap(async (req,res,next) => {
let block = await someLibrary.getBlock(req.body.id);
[some more code]
}));
app.listen(process.env.PORT || 8000);
Run Code Online (Sandbox Code Playgroud)
它在我的机器上工作正常,但是当我部署到Heroku时,我收到错误,因为语法不受支持:
2017-03-23T10:11:13.953797+00:00 app[web.1]: app.post('/getBlock', asyncWrap(async (req,res,next) => {
2017-03-23T10:11:13.953799+00:00 app[web.1]: SyntaxError: Unexpected token (
Run Code Online (Sandbox Code Playgroud)
让Heroku支持这种语法的最简单方法是什么?
德米特定律似乎是一个非常强大的概念.我可以理解它如何帮助编写良好且可维护的面向对象的代码.
有些人建议每次需要访问视图中关联对象的属性时编写委托方法.而不是在视图中写这样的东西
@order.customer.name
Run Code Online (Sandbox Code Playgroud)
你会写这段代码:
# model
class Order < ActiveRecord::Base
belongs_to :customer
delegate :name, :to => :customer, :prefix => true
end
#view
@order.customer_name
Run Code Online (Sandbox Code Playgroud)
另一方面,人们认为你的观点不应该指示模型,你不应该只为了在视图中交换下划线的点而向模型添加委托等方法.
如果在视图中违反Demeter法则,在模型中编写委托方法是否被认为是最佳实践?
我正在建立一个韩语词汇训练师,我想比较人们输入的用户输入.
在韩语和其他一些亚洲语言中,您可以使用多个键盘事件撰写字母.在Chrome中,$ scope.$ watch,ng-keyup和ng-change仅在字母完全合成并且输入了新字母或空格后触发.我不介意AngularJS在最后一个字母完全合成之前没有触发任何东西,但是一旦字母完成,它应该触发而不必添加空格或开始下一个单词.
HTML:
<form name="forms.vocabularyForm">
<input name="answer" id="answer" ng-model="vocabularyCtrl.answer" ng-change="vocabularyCtrl.checkChange()" ng-keyup="vocabularyCtrl.checkKeyUp($event)" type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)
控制器:
.controller('VocabularyCtrl', [
'$scope',
'$location',
function($scope, $location) {
this.checkChange = function () {
console.log("answer change: " + this.answer);
};
this.checkKeyUp = function ($event) {
console.log("answer keyUp: " + this.answer);
};
$scope.$watch('vocabularyCtrl.answer', function (answerNew, answerOld) {
console.log('answerOld: ' + answerOld + ', answerNew: ' + answerNew);
}, true);
};
]);
Run Code Online (Sandbox Code Playgroud)
例:
Input: ?
Console:
answerOld: , answerNew:
answer keyUp:
Input: ?
Console:
answerOld: , answerNew: …
Run Code Online (Sandbox Code Playgroud) 我期待Array#shift
和Array#unshift
两者的运行时间?(n)
.原因是机器需要遍历每个阵列成员并将其分配给左侧或右侧的键.
在Array#unshift
假设只有一个值作为参数传递并且有大量数组成员的情况下,我假设值赋值array[0]
不会对运行时间产生重大影响.换句话说,当数组成员的数量很高并且传入的变量数量Array#unshift
很少时,我预计Array#shift
并且Array#unshift
具有相同的运行时间.
在Ruby 2.1.2上运行基准测试时,这些假设并不成立.为什么?
码:
require 'benchmark'
GC.disable
number_of_elements = 25_600_000
a1 =[]
a2 = []
a3 = []
a4 = []
q1 = Queue.new
q2 = Queue.new
puts number_of_elements
number_of_elements.times do
q1.enq(true)
q2.enq(true)
a1 << true
a2 << true
a3 << true
a4 << true
end
number_of_operations = 1
Benchmark.bm do |bm|
puts "Queue#enq('test')"
bm.report do
number_of_operations.times { q1.enq('test') }
end
puts "Queue#deq" …
Run Code Online (Sandbox Code Playgroud) 我有几个提交给 Virtus 对象的表单(通过控制器)。有些表单包含extras
属性,有些则不包含。
我目前无法区分是否extras
已设置为空数组(即用户取消选择表单上的所有复选框)或是否从未提交过附加内容。在任何一种情况下,extras
都将是一个空数组。
我需要这种区别,因为如果用户取消选择所有extras
我需要更新它们。另一方面,如果额外内容不是表单的一部分(即不在参数中),我不应该更新它们。
class UpdateForm
include Virtus.model(nullify_blank: true)
include ActiveModel::Model
attribute :extras, Array
attribute :booking_time, Time
def save
updatable_attributes = self.attributes.delete_if { |key, value| value.blank? }
some_object.update(updatable_attributes)
end
end
Run Code Online (Sandbox Code Playgroud)
extras
如果我这样称呼它,我怎么能让 Virtus 给我一个零:
UpdateForm.new(booking_time: Time.current)
Run Code Online (Sandbox Code Playgroud)
或者有没有更好的模式来做到这一点?
ruby ×4
angularjs ×1
app-store ×1
arrays ×1
async-await ×1
babeljs ×1
bootstrap-4 ×1
css ×1
gist-index ×1
gwt-gin ×1
heroku ×1
html ×1
indexing ×1
ios ×1
javascript ×1
node.js ×1
oop ×1
performance ×1
postgresql ×1
rspec ×1
rspec-rails ×1
rspec2 ×1
sidekiq ×1