ruby 用变量替换find_or_create_by中的键

pvcm50d1  于 2023-05-17  发布在  Ruby
关注(0)|答案(1)|浏览(89)

我有以下代码:

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:替换为一个动态变量?

tkqqtvp1

tkqqtvp11#

试试MyModel.find_or_create_by(attribute_name_for_relation => id)
attribute_name_for_relation:是一个符号,而不是对方法的调用)

相关问题