我正在尝试创建一个Tempfile并将一些文本写入其中.但是我在rails控制台中遇到了这种奇怪的行为
t = Tempfile.new("test_temp") # => #<File:/tmp/test_temp20130805-28300-1u5g9dv-0>
t << "Test data" # => #<File:/tmp/test_temp20130805-28300-1u5g9dv-0>
t.write("test data") # => 9
IO.read t.path # => ""
Run Code Online (Sandbox Code Playgroud)
我也试过,cat /tmp/test_temp20130805-28300-1u5g9dv-0
但文件是空的
我错过了什么吗?或者写什么是正确的方法Tempfile
?
仅供参考我使用的是ruby 1.8.7和rails 2.3.12
我遇到了一个奇怪的问题,即创建一个范围并使用first
finder.似乎first
在作用域中使用作为查询的一部分将使其在未找到结果的情况下返回所有结果.如果找到任何结果,它将正确返回第一个结果.
我已经设置了一个非常简单的测试来证明这一点:
class Activity::MediaGroup < ActiveRecord::Base
scope :test_fail, -> { where('1 = 0').first }
scope :test_pass, -> { where('1 = 1').first }
end
Run Code Online (Sandbox Code Playgroud)
注意这个测试,我已经设置了匹配记录的条件.实际上,我根据实际情况进行查询,并获得相同的奇怪行为.
以下是失败范围的结果.正如您所看到的,它会生成正确的查询,但没有结果,因此它会查询所有匹配的记录并返回:
irb(main):001:0> Activity::MediaGroup.test_fail
Activity::MediaGroup Load (0.0ms) SELECT "activity_media_groups".* FROM "activity_media_groups" WHERE (1 = 0) ORDER BY "activity_media_groups"."id" ASC LIMIT 1
Activity::MediaGroup Load (0.0ms) SELECT "activity_media_groups".* FROM "activity_media_groups"
=> #<ActiveRecord::Relation [#<Activity::MediaGroup id: 1, created_at: "2014-01-06 01:00:06", updated_at: "2014-01-06 01:00:06", user_id: 1>, #<Activity::MediaGroup id: 2, created_at: "2014-01-06 01:11:06", updated_at: "2014-01-06 01:11:06", user_id: 1>, #<Activity::MediaGroup …
Run Code Online (Sandbox Code Playgroud) 我有一个对象数组如何检查其中任何一个是否是ActiveRecord?
p = Patient.find(30)
p.patient_problems
Run Code Online (Sandbox Code Playgroud)
上面的代码生成以下查询
SELECT `patient_problem`.* FROM `patient_problem` WHERE `patient_problem`.`patient_id` = 30 AND (`patient_problem`.`record_status_id` = 1)
Run Code Online (Sandbox Code Playgroud)
但有没有办法分配/使用别名table_name之类的
p.patient_problems(:alias=>'p1') # just for Ex.. This code will not work
p.patient_problems(:alias=>'p2') # just for Ex.. This code will not work
Run Code Online (Sandbox Code Playgroud)
因此它将生成以下查询
SELECT `p1`.* FROM `patient_problem` AS `p1` WHERE `p1`.`patient_id` = 30 AND (`p1`.`record_status_id` = 1)
SELECT `p2`.* FROM `patient_problem` AS `p2` WHERE `p2`.`patient_id` = 30 AND (`p2`.`record_status_id` = 1)
Run Code Online (Sandbox Code Playgroud)
附加信息
我的问题是当我尝试使用连接时
p.patient_problems(:所有,:联接=>连接)
我收到这个错误
ActionView::Template::Error (Mysql2::Error: Not unique table/alias: 'patient_problem': SELECT `patient_problem`.* FROM …
Run Code Online (Sandbox Code Playgroud) 我知道当我们想要使用单个Load Balancer/public IP公开多个服务/路由时,可以使用Ingress.
现在我想将我的Nginx服务器暴露给公众.我有两个选择
service type as LoadBalancer
voila我得到了公共IP现在我可以使用选项1完成我的工作,何时或为什么我会选择选项2什么是在没有Ingress的情况下使用Ingress的nginx的优势?
我有以下代码
public class BenchMark {
public static void main(String args[]) {
doLinear();
doLinear();
doLinear();
doLinear();
}
private static void doParallel() {
IntStream range = IntStream.range(1, 6).parallel();
long startTime = System.nanoTime();
int reduce = range
.reduce((a, item) -> a * item).getAsInt();
long endTime = System.nanoTime();
System.out.println("parallel: " +reduce + " -- Time: " + (endTime - startTime));
}
private static void doLinear() {
IntStream range = IntStream.range(1, 6);
long startTime = System.nanoTime();
int reduce = range
.reduce((a, item) -> a * …
Run Code Online (Sandbox Code Playgroud) 例如,我有以下代码
var myModel = Backbone.Model.extend({
foo: function(){
console.log('in foo..')
}
});
Run Code Online (Sandbox Code Playgroud)
foo
如果我实例化myModel
但是有没有办法在没有实例化的情况下访问它,这个方法有效吗?
如何使用当前元素的next和before元素反向迭代一个数组?
是否有可能使用each_cons
与reverse_each
?
我在 GCP 中有两个使用 Cloud SQL 和 GKE 的项目
Project A
-> Cloud SQL
Project B
-> GKE Cluster
Run Code Online (Sandbox Code Playgroud)
现在我想从 GKE 集群访问 Cloud SQL,对此我有两个选择。
1. IPv4 address to connect
2. Clous SQL Proxy as sidecar
Run Code Online (Sandbox Code Playgroud)
但问题是它们都是通过公共IP连接的。我担心延迟,所以我在想我们可以通过 VPC 访问吗?或者某种内部网络?所以读/写会更快。
这是添加事件的代码
$(document).on({
click: function() {
$(this).hide();
$('#form_name').removeClass('hide');
$('#form_template_name')
.attr('placeholder', $(this).text())
.focus();
}
}, '.form-template-name');
Run Code Online (Sandbox Code Playgroud)
对于某些情况,我不希望触发此事件.所以我尝试的是
$('.form-template-name').off();
$('.form-template-name').unbind();
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何效果.我错过了什么吗?
activerecord ×3
ruby ×2
arrays ×1
backbone.js ×1
file-io ×1
java-8 ×1
java-stream ×1
javascript ×1
jquery ×1
jvm ×1
kubernetes ×1
mysql ×1
performance ×1
scope ×1
vpc ×1