如何用元编程定义类方法?

时间:2015-01-05 01:27:49

标签: ruby metaprogramming

为什么下面没有创建类方法?

class Movie
  ['upcoming','now_playing','top_rated'].each do |method|
    define_method(method) do |page=1,api_key='xxxxxx'|
      movies = get("/movie/#{method}",:query=>{page: page,api_key: api_key}).to_hash["results"].map{|m| Movie.new(m["id"])}
    end
  end
end

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

因为define_method创建了一个实例方法,而不是类方法。