Đây là cách để chuyển đổi một chuỗi để một lớp trong Rails/Ruby:Làm cách nào để chuyển đổi chuỗi thành phương thức lớp?
p = "Post"
Kernel.const_get(p)
eval(p)
p.constantize
Nhưng những gì nếu tôi lấy một phương pháp từ một mảng/đối tượng kỷ lục hoạt động như:
Post.description
nhưng nó có thể là
Post.anything
nơi bất kỳ thứ gì là một chuỗi như anything = "description"
.
Điều này rất hữu ích vì tôi muốn cấu trúc lại một lớp rất lớn và giảm dòng mã và lặp lại. Làm thế nào tôi có thể làm cho nó hoạt động?
bạn nhận ra bạn chỉ cần một trong {const_get, eval, constantize}, phải ? – klochner
có. Tất nhiên tôi làm. như tôi vừa thử nghiệm 3. – kgpdeveloper