질문은 제목에 있습니다.매개 변수가 Symbol인지 여부를 어떻게 확인할 수 있습니까?
내 매개 변수는 문자열이나 기호가 될 수 있으며 다른 작업을 수행 할 항목에 따라 달라질 수 있습니다. Ruby에서이를 확인하는 방법이 있습니까?
질문은 제목에 있습니다.매개 변수가 Symbol인지 여부를 어떻게 확인할 수 있습니까?
내 매개 변수는 문자열이나 기호가 될 수 있으며 다른 작업을 수행 할 항목에 따라 달라질 수 있습니다. Ruby에서이를 확인하는 방법이 있습니까?
루비 오브젝트의 종류를 확인할 필요가 다른 솔루션
def foo(arg)
case arg
when Symbol
do symbol stuff
when String
do string stuff
else
do error stuff
end
end
코드 냄새. 그것은 당신이 당신의 매개 변수가 들어오는 방식을 리팩토링해야한다는 표시입니다. –
저는 동의합니다. 그러나 이것은 아주 간단한 뷰 도우미이며, 제가 이것을하고있는 이유는 예외를 일으키지 않고 유효한 모든 형식으로 매개 변수를 보낼 수 있기 때문입니다. – Damian
arg = arg.to_sym을 사용하여 인수가 올바른 형식인지 확인할 수 있습니다. 이것은 문자열에 대해서는 작동하지만 가능한 모든 인수 유형에 대해서는 작동하지 않습니다. – johannes