小编Jim*_*oho的帖子

程序的约束

是否可以在另一个对象的上下文中执行proc?

我知道通常你会做proc.call(foo),然后块应该定义一个参数.我想知道我是否可以"自我"绑定到foo,因此没有必要有一个块参数.

proc = Proc.new { self.hello }

class Foo
  def hello
    puts "Hello!"
  end
end

foo = Foo.new

# How can proc be executed within the context of foo
# such that it outputs the string "Hello"?

proc.call
Run Code Online (Sandbox Code Playgroud)

ruby binding

31
推荐指数
1
解决办法
7746
查看次数

如何在rails会话中清除ruby中的单个条目?

在ruby on rails中,在执行session[:foo] = nil它时会留下:foo在会话对象中命名的条目.如何从会话对象中删除单个条目?

session ruby-on-rails-2

28
推荐指数
2
解决办法
2万
查看次数

在加载不同的页面时,Facebook如何保持页眉和页脚的固定?

浏览Facebook页面时,页面加载和标题栏中的URL在页面加载之间保持可见,并且相应地更改了URL.至少,这是我得到的错觉.

从技术上说,Facebook如何实现这一目标?

html javascript navigation ajax facebook

15
推荐指数
1
解决办法
1万
查看次数

如何将现有记录添加到has_many而不立即保存到数据库?

假设我有这个:

class Pirate < ActiveRecord::Base
  has_many :parrots
  validates_presence_of :name
end

class Parrot < ActiveRecord::Base
  belongs_to :pirate
end
Run Code Online (Sandbox Code Playgroud)

我已经有了1到10个ids的现有海盗和鹦鹉.现在我想这样做:

p = Pirate.first
p.name = nil
p.parrot_ids = [1,2,3]
p.save if p.valid?
Run Code Online (Sandbox Code Playgroud)

因为盗版对象无效(它缺少一个名字)我不希望它被保存.然而,鹦鹉现在与海盗有关,并且它已经在数据库中提交.

如何分配鹦鹉,但是当p.save成功时,只有保存到数据库的鹦鹉的链接?也就是说,如何在一次交易中保存盗版和链接到鹦鹉?

ruby-on-rails ruby-on-rails-3

11
推荐指数
1
解决办法
1665
查看次数

选择哪个数据库(Cassandra,MongoDB,?)来存储和查询事件/日志/指标数据?

在sql术语中,我们存储的数据如下:

table events (
  id
  timestamp
  dimension1
  dimension2
  dimension3
  etc.
)
Run Code Online (Sandbox Code Playgroud)

所有维度值都是整数.这张桌子变得非常大.

我们想要对这样的查询进行愚蠢的快速读取:

SELECT dimension1, dimension2, COUNT(*) 
FROM   events
WHERE  dimension8 = 'foo'
AND    dimension9 = 'bar'
GROUP BY 1, 2
Run Code Online (Sandbox Code Playgroud)

我们想要快速写入,而不关心事务和一致性.我们关心最终的可用性和分区容差.

我在看"NoSQL"替代品.Casandra可以做我正在寻找的那种查询吗?通过阅读他们的文档,这并不是很明显......如果它可以做到这一点,那些类型的查询的性能是什么?

也在看MongoDB,但他们的"group()"功能在我能阅读时有很多限制(最多10,000行).

您是否有使用这些数据库的经验,您是否会建议将其作为上述问题的解决方案?

我应该考虑哪些其他数据库可以快速完成这些查询?

干杯,吉米

mongodb cassandra nosql

10
推荐指数
2
解决办法
6268
查看次数

庆祝Robert Moog的Google Doodle如何产生声音?

我正在检查今天的Google Doodle庆祝Robert Moog.它似乎都是JavaScript.我知道如何播放预制的声波文件并使用JavaScript即时生成声音文件,但这似乎远远不止于此.这个涂鸦是如何产生声音的?

javascript

6
推荐指数
0
解决办法
1063
查看次数

摩卡:你如何设置实例方法的期望?

假设这个ruby代码:

class User
  def self.failed_login!(email)
    user = User.find_by_email(email)
    if user
      user.failed_login_count = user.failed_login_count + 1
      user.save
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我想编写一个测试,测试在给出无效的电子邮件时永远不会调用user.save.例如:

it "should not increment failed login count" do
   User.expects(:save).never()
   User.failed_login!("doesnotexist")
end
Run Code Online (Sandbox Code Playgroud)

此测试目前已通过,但在我提供有效的电子邮件地址时也会通过.

如何使用Mocha设置期望?(或任何其他模拟框架),以便它测试任何用户实例的save方法永远不会被调用?

(最好不要对find_by_email方法进行存根/模拟,因为将来如何获取用户的实现可能会发生变化)

干杯

ruby ruby-on-rails mocha.js

4
推荐指数
1
解决办法
6522
查看次数

如何从sys管理员那里保密密钥?

我们有一个可以将文件上传到S3的网络应用程序.为此,需要一个配置文件,其中包含访问密钥ID和我的AWS账户的访问密钥.

我不是运行Web应用程序的框的系统管理员.所以基本上这个人可以抓住我的访问密钥,例如启动,停止和终止EC2实例等.

在这种情况下,如何保密秘密密钥?

编辑:澄清,这不是不信任系统管理员,否则这样的人将无法获得他维护的方框的root权限.信任系统管理员并不意味着我必须向他/她提供我的信用卡详细信息,我房子和汽车的钥匙等等.这太荒谬了.

这就是,亚马逊在概述安全流程时(http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1697)提到:

"在EC2中,主机管理员和云管理员可以是独立的人,允许执行双人规则安全策略."

如果主机管理员需要访问密钥以便能够上传到S3,我看不出这两者是如何分开的.

security amazon-s3

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