2016-12-14 58 views
0

整個項目的構建方式如下:我有一個提供數據和保存數據的api。比另一個將數據api的數據轉換爲「乾淨」數據的應用程序。而不是一個前端,它需要漂亮和乾淨的數據。Rails - 帶屬性的模型,不存儲在數據庫中

在中間部分,我得到了模型字段。它有多個屬性,如:id,area等,這些屬性也在schema.rb中。現在我也有一些屬性,如:field_nr,它們不在schema.rb中。但是從api中提取出來,然後轉換並打印爲json。現在,我必須從字段模型中讀取屬性field_nr,該屬性不在schema.rb /數據庫中。我如何閱讀這些屬性?

感謝您的幫助&只是問,如果事情還不清楚

+0

使用api將字段更改爲field_nr。 –

回答

0

作爲一個選項,你可以添加到attr_accessor :field_nr模型類。這會給你需要的制定者和獲得者。

0

將「虛擬」屬性添加到ActiveRecord模型中,就像將屬性添加到任何其他Ruby類一樣。

在Ruby中,實例變量始終是私有*。而通過創建訪問器可以訪問:

class Thing 
    attr_reader :a_readable_attr 
    attr_setter :a_write_only_attr 
    attr_accessor :a_rw_attribute 
end 

這是equivilent到:

class Thing 
    def a_readable_attr 
    @a_readable_attr 
    end 

    def a_write_only_attr=(v) 
    @a_write_only_attr = v 
    end 

    def a_rw_attribute 
    @a_rw_attribute 
    end 

    def a_rw_attribute= 
    @a_rw_attribute 
    end 
end 

在Rails的一個非常酷的事情是,它可以讓你的setter存在從散列分配屬性,只要:

class Thing < ActiveRecord::Base 
    attr_accessor :foo 
end 

Thing.new(foo: 'bar') 
相關問題