User.rb
def save_to_db(column_name)
column = (column_name + "_data")
self.column = "blah blah blah"
end
e.g。
如果我调用save_to_db(" stripe"),我的意图是保存"等等等等等等。到user.stripe_data列。
但我在将字符串转换为可以调用自我以保存到数据库的方法时遇到问题。
答案 0 :(得分:1)
假设我正确理解了您的请求,您可以使用[]=
方法
def save_to_db(column_name)
self["#{column_name}_data"] = "blah blah blah"
end
或使用send
。
def save_to_db(column_name)
self.send("#{column_name}_data=", "blah blah blah")
end
绕过setter的另一种方法是直接使用write_attribute
。但是你只能在模型本身内部使用这种方法。
def save_to_db(column_name)
self.write_attribute("#{column_name}_data", "blah blah blah")
end