【问题标题】:(Rails) Is there a way to check the field's datatype?(Rails)有没有办法检查字段的数据类型?
【发布时间】:2013-03-28 02:52:20
【问题描述】:

你如何检查从数据库中检索到的东西的数据类型是什么?

例如,如果我有一些带有数据库字段“title”的模型@model 的实例化,我希望能够编写@model.title.type 之类的代码并让它返回“String”。 Rails 是否为此提供了任何内置功能?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    试试这个:

    @model.column_for_attribute('title').type
    

    应该返回:string:text:integer

    ActiveRecord Column 类还包括许多其他属性:default、limit、name、null、precision、primary、scale、sql_type、type。

    【讨论】:

    • 注解还有:name、precision、primary、null、limit和default
    【解决方案2】:

    在 Rails 3 中,对于我的模型“Firm”,我会使用 Firm.columns_hash

    Firm.columns_hash["name"].type  #returns :string
    

    如果你想遍历它们,你可以这样做:

    Firm.columns_hash.each {|k,v| puts "#{k} => #{v.type}"}
    

    这将输出以下内容:

    id => integer
    name => string
    max_trade_qty => integer
    

    等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      相关资源
      最近更新 更多