我正在尋找一種方法來從字符串中分配模型屬性。這是在具有不同屬性的多個模型共享的關注之內,所以我不能僅僅強制給屬性名稱編碼。從字符串中分配模型屬性的替代方法
我在使用一個字符串沒有問題檢索屬性「發送」:
self.send("#{attribute_name}")
,但我有難度指定字符串中的屬性。 E.g
self."attribute_name" = "<user input>"
可怕的eval函數做什麼,我需要的,但它顯然是可怕的不安全:
eval("self.#{attribute_name} = '<user input>'")
有我缺少的是可以實現這個沒有的eval函數?或者我的方法都是錯誤的,我應該回到製圖板?謝謝。
真棒正是我需要的 - 太感謝你了! – RichardAE 2014-10-07 12:42:49
請注意,如果方法不存在或不公開,public_send會引發異常。 – Jesper 2014-10-07 12:44:48
剛剛看到您的編輯 - 這看起來像一個偉大的實施,再次感謝!當它讓我(顯然是7分鐘)時,我將它標記爲答案。 – RichardAE 2014-10-07 12:45:53