어떻게하면 다음과 같은 사용되지 않는 루비 1.8 코드를 루비 1.9 코드로 변환 할 수 있습니까? invalid_chars_stripper = Iconv.new('UTF-8//IGNORE', 'UTF-8')
invalid_chars_stripper.iconv(body + ' ')[0..-2]
감사합니다.
모듈에 속한 상수를 가져 오는 가장 짧은 방법은 무엇입니까 A? A.constants을 수행하면 A의 상수 배열이 아닌 A의 상수 기호로 된 이름의 배열을 제공합니다. 특히 ancestors을 사용하면 더 간단합니다. A.ancestors은 조상의 상징적 인 이름의 배열이 아닌 조상의 배열을 돌려줍니다. B 클래스의 즉각적인 서브 클래스 배열을 가져 오는
처리해야하는 몇 가지 CSV 데이터가 있으며 중복 된 데이터와 일치하는 방법을 찾는 데 문제가 있습니다. 데이터는 비트 다음과 같습니다 line id name item_1 item_2 item_3 item_4
1 251 john foo foo foo foo
2 251 john foo bar bar bar
3 251 john foo b
코드베이스를 1.8에서 1.9로 업그레이드합니다. 나는 변수가없는 블록에 문제가있는 곳에서 내 코드 (몇 가지 스펙, 우연인지는 확실하지 않음)에 몇 개의 위치가 있습니다. 그들에게 더미 변수를 주면 문제가 해결됩니다. 이 1.8에서 작동, 공장 소녀 공장에서 : 예를 들면 다음과 같습니다이다 Factory.define :thing do |t|
t
나는 initialize 메서드에서 해당 인스턴스 변수에 대한 값을 설정하는 동안 attr_reader 메서드를 생성하는 방법을 찾고 있습니까? 예를 들어, 다음 코드 : class SomeClass
attr_reader :hello
def initialize(arg)
@hello = arg
end
end
나는 다음
현재 메서드 호출에서 호출 된 메서드의 이름을 식별 할 수 싶습니다. #!/usr/bin/env ruby
class SomeClass
def initialize
puts self.name
end
end
p = SomeClass.new
하지만 다음과 같은 오류가 나타납니다 : 나는에서 전화하고 메소드를 호출하려면 어떻게 .
가능한 중복 : How to turn a string into a method call? 루비 1.9를 사용하여, 하나의 호출 문자열 내에 포함하는 방법을 수행하는 방법. 나는 다음을 시도했다 : self.'method_name'
기본적으로 현재 시도하고있는 메소드 이름을 기반으로하는 일반적인 명명 규칙을 기반으로 메소드를 호출한다. 당신이 send 봤
편집 질문의 이전 버전이 내 문제를 정확하게 반영하지 않았습니다. 나는 그것을 편집했다. (상응하는 메서드가있는 변경 가능한 개체에 대한) 상쇄적인 덧셈/뺄셈을 수행하고 싶습니다. a 이후에 할당 된 : a = [:a, :b]
다음 중 하나가 구문 오류를 반환합니다. a -= [:b] += [:c]
(a -= [:b]) += [:c]
a.-=([:b