예를 들어 우리는 it& # 39 의 이름으로, 같은 형식으로 데이터베이스에 " ClassName"; 또는 " my_super_class_name";).
어떻게 에서 객체를 생성할 수 있어?
내 자신을 찾고 있었던 것이 아니라, 여기에서 찾을 수 없다. [루비 온 레일 apiu 방법] [1]
name = "ClassName"
instance = name.constantize.new
우리는 할 수 없는 경우에도 사용자의 문자열의 메서드입니다 .classify 포맷되었을 수 있습니다.
name = "my_super_class"
instance = name.classify.constantize.new
[1]: http://api.rubyonrails.org/classes/String.html # 내가 콘스탄티즈 방법
klass = Object.const_get "ClassName"
클래스 메서드 정보
class KlassExample
def self.klass_method
puts "Hello World from Class method"
end
end
klass = Object.const_get "KlassExample"
klass.klass_method
irb(main):061:0> klass.klass_method
Hello World from Class method
def class_for(name)
{
"foo" => Foo,
"bar" => Bar,
}[name] || raise UnknownClass
end
class_for(name_wherever_this_came_from).create!(params_somehow)
어떻게 보나마나죠 없이도 적절한 params 임의로 화이트리스트 약간만이라도 확장하지만 내려받습니다 어려운 발상이다.