小编Azo*_*olo的帖子

如何在Rails中实现类表继承?

我刚刚完成了使用Rails的Agile Web Development,第四版(http://pragprog.com/book/rails4/agile-web-development-with-rails)这本书,并且需要一些帮助来理解如何创建模型之间的亲子关系.我做了一些谷歌搜索并在StackOverflow上进行了搜索,并且总体上了解了单表继承和类表继承.

我有一堆关于档案馆藏中不同项目的元数据.大多数元数据对于所有对象都是相同的,例如,登录号,标题,描述,版权等.除了公共元数据之外,还存在仅适用于某些类型的项目的元数据,例如,照片需要保持跟踪物品是彩色还是黑白; 录音需要跟踪格式(CD,DAT,盒式磁带等)和持续时间; 文本材料需要跟踪页数; 等等

       Class hierarchy

            Item
              |
  +-----------+------------+
  |           |            |
Photo   SoundRecording    Text
Run Code Online (Sandbox Code Playgroud)

由于我将拥有数千条记录,因此我将单表继承视为效率太低.我理解这里提到的类表继承的想法:http://martinfowler.com/eaaCatalog/classTableInheritance.html但我对如何在新的Ruby on Rails项目中实际实现它感到困惑.我是否将类表继承实现为多态关联(http://guides.rubyonrails.org/association_basics.html#polymorphic-associations)或我是否在错误的轨道上?

谢谢.

ruby-on-rails class-table-inheritance

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

在Rails世界中是否有与ASP.NET Web API相同的东西?

或者Rails本身是否适合开发API?

看来的ASP.NET Web API项目类型有一定的历史与WCF交织在一起(如在详述这个职位为例),所以也许它并不适用于轨.

UPDATE

为了澄清,Microsoft拥有ASP.NET MVC框架.最近,他们推出了一个名为ASP.NET Web API的框架.ASP.NET Web API似乎与ASP.NET MVC有相似之处,但是专门针对RESTful Web服务进行了修剪.Ruby/Rails空间中是否有等价物?

.net asp.net web-services ruby-on-rails asp.net-web-api

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

在 RoR 中,如果我没有收到服务器的响应,我该如何捕获异常?

我正在使用 Rails 4.2.3 和 Nokogiri 从网站获取数据。当我没有从服务器得到任何响应时,我想执行一个操作,所以我有:

begin
  content = open(url).read
  if content.lstrip[0] == '<'
    doc = Nokogiri::HTML(content)
  else
    begin
      json = JSON.parse(content)
    rescue JSON::ParserError => e
      content
    end
  end
rescue Net::OpenTimeout => e
  attempts = attempts + 1
  if attempts <= max_attempts
    sleep(3)
    retry
  end
end
Run Code Online (Sandbox Code Playgroud)

请注意,这与从服务器获取 500 不同。我只想在完全没有响应时重试,要么是因为我没有得到 TCP 连接,要么是因为服务器无法响应(或其他一些导致我没有得到任何响应的原因)。除了我的情况之外,是否有更通用的方法来考虑这种情况?我觉得还有很多我没有想到的其他异常类型。

ruby open-uri no-response ruby-on-rails-4

3
推荐指数
2
解决办法
2412
查看次数

在Ruby中,如何使用现有实例的所有相同属性值(除了id)来创建模型的新实例

我正在开发一个Ruby on Rails应用程序,我有一个名为Activity的模型.我希望能够创建一个新的Activity实例,并将它作为现有Activity实例的精确副本,除了它具有不同的ID.我怎样才能做到这一点?

ruby ruby-on-rails

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