In a question I've previously answered,我使用关联扩展来覆盖HABTM集合的追加(<<
)方法(另外,a similar question):
has_and_belongs_to_many(:countries) do
def <<(country)
if [*country].all? {|c| c.is_a?(String) }
countries = Country.where(:code => country)
concat(*countries)
else
concat(country)
end
end
end
这可能不受鼓励,但我的问题是,如果可能的话,如何覆盖赋值运算符,那么我可以countries = ['IL', 'US']
得到相同的结果?
答案 0 :(得分:0)
我认为它可能是这样的:
def =(countries)
values = countries.kind_of?(Hash) ? countries.values : countries
values.each do |country|
self << country
end
end
我不确定你是否可以使用运算符&lt;&lt;那样。