index付け。挙動変更。
Railsのデフォルトの挙動が index_
とりあえず、index というprefixもいらないだろうし、
オリジナルの実装が
module ActiveRecord module ConnectionAdapters module SchemaStatements def index_name(table_name, options) #:nodoc: if Hash === options # legacy support if options[:column] "index_#{table_name}_on_#{Array(options[:column]) * '_and_'}" elsif options[:name] options[:name] else raise ArgumentError, "You must specify the index name" end else index_name(table_name, :column => options) end end end end end
というわけで、
module ActiveRecord module ConnectionAdapters module SchemaStatements def index_name(table_name, options={}) alias :org_index_name :index_name def index_name(table_name, options) #:nodoc: if Hash === options && options[:column] Array(options[:column]) * '_' else org_index_name(table_name, options) end end end end end end
えいやっと、plugin として上書き。andもいらん。しかし、index_nameメソッドがpublicなのに、nodoc なのはなぜだw