我想知道如何从反射中获取复数ids方法 我有以下课程
class Tale < ActiveRecord::Base
has_many :x
has_many :y
我用
Tale.reflect_on_associations
访问关联x和y
我可以用
x.klass #=> x
x.class_name #=> "x"
x.plural_name #=> "xs"
我需要的是一种从反射中获取方法association_name_ids的方法
例如
:x_ids
所以我可以按如下方式使用它
tale_instance_object.send(:x_ids)
答案 0 :(得分:1)
使用String#singularize
:
tale_instance_object.send(x.name.to_s.singularize + "_ids") # => [1, 2, 3, ...]
此外,您可以使用内置的#ids_reader
方法:
my_model_instance.association(:x).ids_reader # => [1, 2, 3, ...]