我想使用自定義設置器來對字段進行一些格式設置。在irb中,如果我測試setter:如何訪問我覆蓋的Activerecord setter?
o.field_name = "4"
我看到我的自定義setter被引用。但是,與此是不:
o[:field_name] = "4"
據我所知,在第一種情況下,這是一個函數調用,並在第二種情況下,我們只是直接設置屬性。但是我沒有完全看到如何通過我們的自定義設置器來設置屬性,我認爲這是關鍵。
但我的主要問題是,如果var擁有我的field_name,我看不到如何動態引用a.var並將其解釋爲a.field_name。我所看到的只是一個[var],這繞過了我的制定者。
啊,所以這個問題問的是什麼? :O + 1確實是多才多藝的。另外請看一下eval進行動態評估。 – Spyros 2011-04-04 04:50:21
啊我需要檢查!ruby對象頁面,那裏有很多功能,我錯過了。但用法似乎是:a.send var.to_sym val這給我一個運行時錯誤,而a.send(var.to_sym)= val給我一個語法錯誤。我不知道,我即將放棄這個設置者作爲格式化員的想法。 – 2011-04-04 15:30:58
這不應該給你一個錯誤。val是零或什麼的。順便說一句,你不需要調用to_sym,send可以處理純字符串。 – 2011-04-04 17:32:51