小编Chi*_*tan的帖子

何时使用接口而不是抽象类,反之亦然?

这可能是一个通用的OOP问题.我想根据它们的用法在接口和抽象类之间进行一般性比较.

什么时候想要使用接口?何时想要使用抽象类

oop inheritance abstract-class interface

412
推荐指数
13
解决办法
31万
查看次数

如何在ruby中实现抽象类?

我知道ruby中没有抽象类的概念.但是,如果它需要实施,那该怎么办呢?我试过像......

class A
  def self.new
    raise 'Doh! You are trying to write Java in Ruby!'
  end
end

class B < A
  ...
  ...
end
Run Code Online (Sandbox Code Playgroud)

但是当我尝试实例化B时,它会在内部调用A.new哪个会引发异常.

此外,模块无法实例化,但也无法继承.使新方法私有也行不通.有什么指针吗?

ruby abstract-class

113
推荐指数
9
解决办法
9万
查看次数

'eval'应该是讨厌的吗?

我多次使用eval红宝石的功能.但我听说有人说evals很讨厌.当被问到为什么以及如何,我永远无法得到令人信服的理由不使用它.他们真的很讨厌吗?如果是,以什么方式?评估有哪些"更安全"的选择?

ruby eval

23
推荐指数
6
解决办法
6741
查看次数

rails关联方法如何工作?

rails关联方法如何工作?让我们考虑这个例子

class User < ActiveRecord::Base
   has_many :articles
end

class Article < ActiveRecord::Base
   belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

现在我可以做点什么了

@user = User.find(:first)
@user.articles
Run Code Online (Sandbox Code Playgroud)

这会抓取属于该用户的文章.到现在为止还挺好.

现在我可以继续在某些条件下对这些文章进行查找.

@user.articles.find(:all, :conditions => {:sector_id => 3})
Run Code Online (Sandbox Code Playgroud)

或者简单地声明和关联方法

class User < ActiveRecord::Base
   has_many :articles do
     def of_sector(sector_id)
       find(:all, :conditions => {:sector_id => sector_id})
     end
   end
end
Run Code Online (Sandbox Code Playgroud)

并做

@user.articles.of_sector(3)
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,这findActiveRecord使用关联方法获取的对象数组有何影响?因为如果我们实现我们自己的User实例方法调用articles并编写我们自己的实现,它给出了与关联方法完全相同的结果,那么ActiveRecord对象的获取数组上的查找将不起作用.

我的猜测是,关联方法将某些属性附加到获取对象数组,从而可以使用find其他ActiveRecord方法进一步查询.在这种情况下,代码执行的顺序是什么?我怎么能验证这个?

activerecord ruby-on-rails model-associations

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

rails_fu在rails 3中进行测试

我正在尝试使用attachment_fu为工作文件上传功能编写规范.但是,作者提供的用于测试的示例代码要求我要求action_controller/test_process以便我可以访问ActionController::UploadedStringIO类.我之前在rails 2.x中使用过这个,但对于rails 3,它无法找到test_process文件.

如何继续测试rails 3中的文件上传功能?

testing attachment-fu ruby-on-rails ruby-on-rails-3

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

实现LinkedIn的有效方式,如"你如何连接"功能?

LinkedIn有这个很酷的功能,在访问某些用户的个人资料时,LinkedIn会提示你如何通过网络连接到该用户.

假设访问者和配置文件所有者是图的两个节点,其中节点表示用户,边表示友谊,一个简单的解决方案可以是从两个节点开始直到某个级别的bfs并查看是否存在任何交叉点.交叉点将是网络链路节点.

虽然这听起来很整洁,但问题在于,为了确定每个人的朋友,需要单独的数据库查询.当网络深度超过2级时,算法将是非常耗时的.有更好的有效替代方案吗?如果没有,我们如何才能增加更好的硬件支持(并行计算,网格,分布式数据库等)以减少计算所需的时间?

database hardware performance graph social-networking

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

jQuery阻止UI异常

我正在使用JQuery UI插件blockUI阻止每个ajax请求的UI.它就像一个魅力,但是,当我正在进行ajax调用以获取自动完成建议项时,我不想阻止UI(或者至少不显示"请稍候"消息).我怎么做?我正在使用jquery自动完成插件来实现自动完成功能.

有没有办法告诉阻止UI插件不阻止UI自动完成?

jquery jquery-ui blockui

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

是否有必要对ActiveRecord验证进行单元测试?

是否有必要对ActiveRecord验证进行单元测试,或者它们已经过充分测试,因此足够可靠?

ruby activerecord unit-testing ruby-on-rails

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

Jeditable在文本区域的文本周围插入额外的空格

当我点击编辑某些文本时,Jeditable会在文本区域的实际文本周围插入额外的空格.如何修剪或实际修复此问题?

jquery textarea jeditable

7
推荐指数
3
解决办法
3915
查看次数

如何在Mac OS X 10.9.5上以编程方式读取蓝牙低功耗传输数据?

我正在尝试使用Ruby 以程序方式读取蓝牙低功耗传输数据.蓝牙低功耗技术不支持标准规范v4.0中的串行端口配置文件(SPP).

使用较旧的蓝牙通信方法,可以只读取蓝牙传入数据的串行端口(/dev/tty.Bluetooth-Incoming-Port).显然,这对蓝牙低功耗不起作用,因为它几乎完全不同.

我遇到了一些工具,如LightBlueXCode硬件IO工具,用于读取上述蓝牙低功耗设备传输的数据,但我不确定它们是如何工作的.有人可以帮忙吗?

macos serial-port bluetooth bluetooth-lowenergy

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