-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Labels:None
For example, in following code, when I set pre_steps, mongoid will update "post_steps_ids" instead of "post".
class Step has_and_belongs_to_many :pre_steps, foreign_key: :pre, class_name: 'Step', inverse_of: :post_steps has_and_belongs_to_many :post_steps, foreign_key: :post, class_name: 'Step', inverse_of: :pre_steps end
I use following monkey patch as a workaround
require 'mongoid/relations/metadata' class Mongoid::Relations::Metadata def determine_inverse_foreign_key if has_key?(:inverse_of) if inverse_class_name? && inverse_of inverse_class_name.constantize.relations[inverse_of.to_s].foreign_key else inverse_of ? "#{inverse_of.to_s.singularize}#{relation.foreign_key_suffix}" : nil end else "#{inverse_class_name.demodulize.underscore}#{relation.foreign_key_suffix}" end end end