문서 : Under the "Defined?, And, Or, and Not" section
이 and
를 사용하여 함께 그 중 하나가 nil
또는 false
반환 될 때까지 관련 작업을 체인에 유용합니다. 질문에 표시된 것처럼 사용할 수도 있고 코드 줄을 단락시키는 데 사용할 수도 있습니다.
# Short circuit example
blog = Blog.find_by_id(id) and blog.publish!
블로그 만 find_by_id
가 성공하면 .publish!
가 호출 가져옵니다. 당신의 예에서
: 그들은 단지 더 컴팩트 한 줄의 코드를 작성하는 데 사용하는
def access_denied
redirect_to login_path, :notice => "Please log in to continue" and return false
end
.
def show
if something
render :partial => 'some_partial'
end
render :partial => 'some_other_partial'
end
레일 당신에게 경고를 줄 것이다 :
그러나, 그것은 또한 당신이 조건문을 기반으로 렌더링 할 수있는 컨트롤러 액션에 유용하고 레일을받지 않으 경고 "여러 렌더" 예 : something
이 액션에서 평가되는 여러 렌더링 문을 가지고 있기 때문에 true를 반환합니다. 그러나이를
if something
render :partial => 'some_partial' and return
end
으로 변경하면 작업 실행을 중지 할 수 있습니다.
오, 당신이 * 왜 * 사용할지 묻고있는 줄 알았는데. 어쨌든, 내 답변에 설명 된대로 필터에 의해 사용되고 있다면, 매우 조심하십시오. –