我有以下代码:
def my_model
MyModel.find_or_create_by(my_model_id: id)
end
这段代码可以工作,但是因为我将它移到mixin中,my_model_id应该是一个变量。为此,我创建了以下方法
def attribute_name_for_relation
(self.class.name.downcase + "_id").to_sym
end
MyModel.find_or_create_by(attribute_name_for_relation: id)
当然不会工作。
有没有一种方法可以将my_model_id:
替换为一个动态变量?
1条答案
按热度按时间tkqqtvp11#
试试
MyModel.find_or_create_by(attribute_name_for_relation => id)
(
attribute_name_for_relation:
是一个符号,而不是对方法的调用)