[RUBY-ON-RAILS] 레일 : named_scope, 람다 및 블록
RUBY-ON-RAILS레일 : named_scope, 람다 및 블록
나는 다음과 같은 두 개의 동등한 생각했다 :
named_scope :admin, lambda { |company_id| {:conditions => ['company_id = ?', company_id]} }
named_scope :admin, lambda do |company_id|
{:conditions => ['company_id = ?', company_id]}
end
하지만 루비는 불평이다 :
ArgumentError: tried to create Proc object without a block
어떤 아이디어?
해결법
-
==============================
1.그것은 파서 문제입니다. 이 시도
그것은 파서 문제입니다. 이 시도
named_scope :admin, (lambda do |company_id| {:conditions => ['company_id = ?', company_id]} end)
-
==============================
2.나는 {...} 문제가 사이의 우선 순위의 차이에 관련이있을 수 있습니다 생각 할 ... 끝
나는 {...} 문제가 사이의 우선 순위의 차이에 관련이있을 수 있습니다 생각 할 ... 끝
여기에 몇 가지 SO 토론이있다
내가 변수에 람다를 할당 생각 (발동 될 것이다)는 DO와 함께 할 수 ... 말 :
my_proc = lambda do puts "did it" end my_proc.call #=> did it
-
==============================
3.당신은 루비 1.9 이상 1에 있다면, 당신은 람다에서 "도둑질"블록에서 메서드 호출을 방지하기 위해 충분히 높은 우선 순위를 가지고 람다 문자 (구문 화살표)를 사용할 수 있습니다.
당신은 루비 1.9 이상 1에 있다면, 당신은 람다에서 "도둑질"블록에서 메서드 호출을 방지하기 위해 충분히 높은 우선 순위를 가지고 람다 문자 (구문 화살표)를 사용할 수 있습니다.
named_scope :admin, ->(company_id) do {:conditions => ['company_id = ?', company_id]} end
제 1 안정 루비 1.9.1 릴리스 2009-01-30이었다.
-
==============================
4.내가 말할 수있는 그것은 어떤 우선 순위에 관련이
내가 말할 수있는 그것은 어떤 우선 순위에 관련이
1.upto 3 do # No parentheses, block delimited with do/end |x| puts x end 1.upto 3 {|x| puts x } # Syntax Error: trying to pass a block to 3!
from https://stackoverflow.com/questions/1476678/rails-named-scope-lambda-and-blocks by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일에서 어떻게 핸들 배수 단지에 분할 체크 박스를 체크, 또는? (0) | 2020.03.02 |
---|---|
[RUBY-ON-RAILS] "BCrypt :: 오류 :: InvalidHash"로그인 시도 (0) | 2020.03.02 |
[RUBY-ON-RAILS] 어떻게 루비 레일에 전체 텍스트 검색합니까? (0) | 2020.03.02 |
[RUBY-ON-RAILS] API 인증은 사용자의 웹 응용 프로그램 서버에 로그인 (0) | 2020.03.02 |
[RUBY-ON-RAILS] LINK_TO 및 원격 => 진정한 +의 JQuery와 : 어떻게? 도움? (0) | 2020.03.02 |