You've got your associations wrong:
class Movie < ActiveRecord::Base
has_many :movie_genres
has_many :genres, through: :movie_genres
end
class MovieGenre < ActiveRecord::Base
belongs_to :movie
belongs_to :genre
end
class Genre < ActiveRecord::Base
has_many :movie_genres
has_many :movies, through: :movie_genres
end
I haven't tested this, but you must use singulars on the through model associations. (And I've added the "has_many :movies" on Genre for symmetry.
And to read the attributes:
@movie.movie_genres.count # => 3
@movie.movie_genres.first # => MovieGenre
@movie.movie_genres.first.genre # => Genre