我怎么处理的数据,它必须保持在一个数据库,但不是一个适当的模型,在红宝石在轨道上?

StackOverflow https://stackoverflow.com/questions/114192

  •  02-07-2019
  •  | 
  •  

想象一下,一个网络编写的应用程序,在红宝石在轨道上。部分国家的,该应用程序的代表在一块的数据,这不符合描述的一模型。这种状态的描述,需要坚持相同的数据库的模式。它不同于一种模式是有需要的只是一个实例,其类和它没有关系,与其他类。

有没有人碰到这样的事?

有帮助吗?

解决方案

根据您的描述,我认为rails-settings插件应该可以满足您的需求。

来自自述文件:

<!>“设置是一个插件,可以轻松管理全局键,值对表。可以把它想象成存储在您数据库中的全局Hash,它使用简单的ActiveRecord方法进行操作。跟踪您不希望硬编码到rails应用程序中的任何全局设置。您可以存储任何类型的对象。字符串,数字,数组或任何对象。<!> quot;

http://github.com/Squeegy/rails-settings/tree/master

其他提示

如果是数据,并且它在数据库中,则它是模型的一部分。

这不是真正的RoR问题;这是一般的面向对象设计问题。

如果是我,我可能会找到一种方法将数据概念化为模型,然后使用工厂方法和私有构造函数将其设为单例。

或者,您可以将此视为一种日志记录形式。在这种情况下,您只需要一个Logger类(也是一个单例)直接读/写数据库,并在每个请求的开头和结尾调用。

在Rails中,如果数据在数据库中,则它在模型中。在这种情况下,模型可以被称为<!>“Configuration <!>”,但它仍然映射到Rails系统中的ActiveRecord类。

如果此数据是真正静态的,您可能根本不需要数据库。 您可以在应用程序控制器中使用(作为示例)变量:

class ApplicationController < ActionController::Base
  helper :all 
  @data = "YOUR DATA HERE"   
end

有许多方法可用于实例化在Rails应用程序中使用的数据。

我不确定我理解你为什么说这可不适合在一个轨道的模型。

如果这只是一个复杂的数据结构,只是拯救一群红宝石的代码中的文字的数据库:-)

例如,如果你有一个复杂的嵌套的散列要保存、分配以下你的"数据"的文字领域:

ComplexThing.data = complex_hash.inspect

当你想读回来,只是

complex_hash = eval ComplexThing.data

让我指出2更多的事情,关于这个解决方案:

  • 如果数据结构不标准的红宝石的课程,一个简单的检查不可能做它。如果你看到#<MyClass:0x4066e3c> 任何地方,什么是没有被列化的正确。
  • 这是一个幼稚的执行情况。你可能想看看真正的调动方案如果你的风险具有unicode的数据,或者如果你真的是节省了大量的定制课程。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top