簡體   English   中英

Rails 4-通用alias_attribute

[英]Rails 4 - Generic alias_attribute

我正在嘗試將通用的alias_attribute賦予某些模型屬性。

由於我需要保留數據庫的原始名稱,因此希望使屬性更具可讀性。

例如: GenericDataBaseColumn #=> generic_data_base_column

到目前為止,這是我所擁有的,但未按預期工作:

self.attribute_names.
    each { |attr| alias_attribute attr.split(/(?=[A-Z])/).
                   join("_").downcase.to_sym, :attr }

我之所以使用alias_attribute是因為我正在使用某些字段以JSON形式接收它們並對其進行序列化,因此我希望將來僅通過遷移就可以更改它們。

自研究以來,我一直在問這個問題,唯一類似的問題是仍然沒有答案。

如何在Rails中創建動態屬性別名?

我仍然不確定是否可以實現。

謝謝

顯然是我應該如何調用屬性的誤解。 而不是self.attribute_names應該是attribute_names因為該方法應僅針對實例化的元素進行調用。

另外,在完成第一個修復程序之后,我不得不跳過所有具有相同名稱的屬性,因為這將導致SystemStackError (stack level too deep)

最終的實現應如下所示:

# Defining alias attributes
attribute_names.each do |attr|
  next if attr.blank? || (attr == attr.underscore)
  alias_attribute attr.underscore.to_sym, attr.to_sym
end

希望這對其他人有幫助。 另外,如果有人有答案,請隨時發布。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM