是否可以在另一个对象的上下文中执行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 on rails中,在执行session[:foo] = nil
它时会留下:foo
在会话对象中命名的条目.如何从会话对象中删除单个条目?
浏览Facebook页面时,页面加载和标题栏中的URL在页面加载之间保持可见,并且相应地更改了URL.至少,这是我得到的错觉.
从技术上说,Facebook如何实现这一目标?
假设我有这个:
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成功时,只有保存到数据库的鹦鹉的链接?也就是说,如何在一次交易中保存盗版和链接到鹦鹉?
在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行).
您是否有使用这些数据库的经验,您是否会建议将其作为上述问题的解决方案?
我应该考虑哪些其他数据库可以快速完成这些查询?
干杯,吉米
我正在检查今天的Google Doodle庆祝Robert Moog.它似乎都是JavaScript.我知道如何播放预制的声波文件并使用JavaScript即时生成声音文件,但这似乎远远不止于此.这个涂鸦是如何产生声音的?
假设这个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方法进行存根/模拟,因为将来如何获取用户的实现可能会发生变化)
干杯
我们有一个可以将文件上传到S3的网络应用程序.为此,需要一个配置文件,其中包含访问密钥ID和我的AWS账户的访问密钥.
我不是运行Web应用程序的框的系统管理员.所以基本上这个人可以抓住我的访问密钥,例如启动,停止和终止EC2实例等.
在这种情况下,如何保密秘密密钥?
编辑:澄清,这不是不信任系统管理员,否则这样的人将无法获得他维护的方框的root权限.信任系统管理员并不意味着我必须向他/她提供我的信用卡详细信息,我房子和汽车的钥匙等等.这太荒谬了.
这就是,亚马逊在概述安全流程时(http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1697)提到:
"在EC2中,主机管理员和云管理员可以是独立的人,允许执行双人规则安全策略."
如果主机管理员需要访问密钥以便能够上传到S3,我看不出这两者是如何分开的.