Я думаю, что ваша реализация немного странная.Я бы сделал так, чтобы создать модель жанра (в которой будут храниться все доступные жанры панк, рок, метал и т. Д.).Тогда я бы сделал все это, что вы уже сделали, но без модели GenreList:
rails g model Genre genreable_id:integer genreable_type:string genre_name:string
class Artist < ActiveRecord::Base
has_many :genres, :as => :genreable
end
class Band < ActiveRecord::Base
has_many :genres, :as => :genreable
end
class Genre < ActiveRecord::Base
belongs_to :genreable, :polymorphic => true
end
Затем я бы сделал несколько вложенных ресурсов в моих маршрутах:
resources :artists do
resources :genres
end
resources :bands do
resources :genres
end
изатем отредактируйте мой контроллер для обработки этого вложенного отношения.При таком подходе скажем, если я хочу увидеть все жанры первого исполнителя, которого я бы посетил:
/artists/1/genres
То же самое относится к группам.Я надеюсь, что я понял вашу проблему.Дайте мне знать, если я помог!