如何使用参数值为关联模型构建`.collection`方法?

我不确定我的问题的正确术语是什么,但是可以使用参数的值来“构建”其适当的.collection方法吗?

例如,提交的has_many图像,标签和文档。根据用户与之交互的方式,我想创建适当的关联。

最初,我只为标签设置了它...

def add_to_submission(task,user,tag)
  sub = Submission.find_or_create_by(task: task,user: user)
  sub.tags << tag
end

但是我有办法进一步概括它,以便第三个参数更动态吗?因此,与其不接受标签,不如使用

add_to_submission(@task,@current_user,@new_image)

类似...

def add_to_submission(task,associated_item)
  sub = Submission.find_or_create_by(task: task,user: user)
  items = associated_item.pluralize
  sub.items << associated_item
end
youxiwangluo 回答:如何使用参数值为关联模型构建`.collection`方法?

对于方法.send的动态调用,可以使用。您可以传递方法名称的符号。您应该可以执行类似的操作,但是我将确保为您的方法提供良好的单元测试。

def add_to_submission(task,user,associated_item)
  submission = Submission.find_or_create_by(task: task,user: user)
  children = associated_item.pluralize.to_sym
  submission.send(children) << associated_item
end
本文链接:https://www.f2er.com/3136298.html

大家都在问