[RUBY-ON-RAILS] 루비 블록 구문 오류 [중복]
RUBY-ON-RAILS루비 블록 구문 오류 [중복]
나는 확실히 나는이 구문 오류를 이해하고 있지 않다. 나는 레일 응용 프로그램의 일부 파일 업로드를 관리하는 Carrierwave을 사용하고, 내가 잘못 방법 중 하나에 블록을 통과 할 것으로 보인다.
여기에 Carrierwave 문서의 예는 다음과 같습니다
version :thumb do
process :resize_to_fill => [200,200]
end
여기에 내가 가진 무엇 :
version :full { process(:resize_to_limit => [960, 960]) }
version :half { process(:resize_to_limit => [470, 470]) }
version :third { process(:resize_to_limit => [306, 306]) }
version :fourth { process(:resize_to_limit => [176, 176]) }
상기는, 나는 keyword_end 기대, '}'구문 오류, 예기치하지 작업 얻을 않습니다. 흥미롭게도, 다음은 완벽하게 작동합니다 :
version :full do process :resize_to_limit => [960, 960]; end
version :half do process :resize_to_limit => [470, 470]; end
version :third do process :resize_to_limit => [306, 306]; end
version :fourth do process :resize_to_limit => [176, 176]; end
그래서, 내 질문은, 왜 할 일 ... 끝 부분을 사용하여 블록을 전달할 수있다하지만이 경우에 교정기?
감사!
해결법
-
==============================
1.이 시도:
이 시도:
version(:full) { process(:resize_to_limit => [960, 960]) } version(:half) { process(:resize_to_limit => [470, 470]) } version(:third) { process(:resize_to_limit => [306, 306]) } version(:fourth) { process(:resize_to_limit => [176, 176]) }
당신은 우선 순위 문제가 있습니다. 메소드 호출보다 DO ... 엔드 블록보다 단단하고 더 단단한 {} 블록 귀속; 결과는 루비 당신이 기호에 인수로 블록을 공급하기 위해 노력하고 더 말한다하고 생각하는 것입니다.
(?) 당신은 명확를 참조하거나 다음을 비교하여 가능성이 더 익숙 예 수 있습니다 :
[1, 2, 3].inject 0 { |x, y| x + y } [1, 2, 3].inject(0) { |x, y| x + y }
from https://stackoverflow.com/questions/6854283/ruby-block-syntax-error by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일의 고유 한 토큰을 만들 수있는 가장 좋은 방법은? (0) | 2020.02.06 |
---|---|
[RUBY-ON-RAILS] 사회 활동 스트림을 구현하는 가장 좋은 방법은 무엇입니까? [닫은] (0) | 2020.02.06 |
[RUBY-ON-RAILS] 새로운 데이터는 포스트 그레스에 레일 배열 열을 지속하지 (0) | 2020.02.06 |
[RUBY-ON-RAILS] MySQL의 :: 오류 : 지정된 키가 너무 깁니다; 최대 키 길이는 1000 바이트입니다 (0) | 2020.02.06 |
[RUBY-ON-RAILS] 종이 클립 예외 : 종이 클립 :: AdapterRegistry :: NoHandlerError (0) | 2020.02.06 |