Tôi biết rằng một mô-đun có thể được bao gồm trong một lớp học hoặc một mô-đun khác. Nhưng, tôi thấy here rằng một mô-đun được bao gồm theo phương thức. Điều này có nghĩa là gì?Ruby: Mô-đun được bao gồm trong phương thức có nghĩa là gì?
module ActsAsVotable
module ClassMethods
def acts_as_votable
has_many :votes, :as => :votable, :dependent => :delete_all
include InstanceMethods # What does this means ??
end
end
module InstanceMethods
def cast_vote(vote)
Vote.create(:votable => self, :up => vote == :up)
end
end
end
Tôi nghĩ rằng trong Ruby một lớp có thể kế thừa duy nhất từ lớp khác, nhưng tôi thấy trong mã của bạn rằng một lớp kế thừa từ một module: 'lớp Foo
Argh, bạn đã đúng. Nó đáng lẽ phải là 'lớp Foo; bao gồm ActsAsVotable; actions_as_votable; kết thúc'. Đã chỉnh sửa câu trả lời của tôi cho phù hợp. – DarkDust
Nó cũng không có tác dụng với tôi. Xem ở đây: http://codepad.org/vDvpda9M –