if params[:parent_type] == "Order"
parent_id = nil
else
parent_id = params[:parent_id]
end
Ruby 사용자가이 방법으로 글쓰기를 비웃습니까? 필자가 본 루비 코드처럼 간결하게 보입니다.루비 (Ruby)가 이것을 작성하는 데 더 관용적 인 방법은 무엇입니까?
if params[:parent_type] == "Order"
parent_id = nil
else
parent_id = params[:parent_id]
end
Ruby 사용자가이 방법으로 글쓰기를 비웃습니까? 필자가 본 루비 코드처럼 간결하게 보입니다.루비 (Ruby)가 이것을 작성하는 데 더 관용적 인 방법은 무엇입니까?
저에게 이상하게 보입니다. 당신은 if (parent_id = if params...
) 앞의 과제를 옮기거나 3 진을 사용할 수는 있지만 결과가 좋지 않을 것이라고 생각합니다. PARENT_ID 그 라인 이전에 존재하지 않거나 정의되지 않은 경우
간단히 작성할 수 있습니다
parent_id = params[:parent_id] unless params[:parent_type] == "Order"
그대로 그것은 정말 잘못된 아무것도하지만, 더 간결 만들 수 있습니다 : 또는
parent_id = (params[:parent_type] == "Order") ? nil : params[:parent_id]
:
parent_id = if (params[:parent_type] == "Order")
nil
else
params[:parent_id]
end
나는 그것이이다 방법 잘 생각하지 않습니다. 저는 루비 (Ruby) 사람이고, 그런 식으로 쓰는 것에 대해 당신을 비웃지 않을 것입니다. 코드가하는 일이 분명하고 코드 중복이 없으므로 걱정할 필요가 없습니다.
나는 여기에도 동의한다 ... –
을 내가 좋아하는 :
이parent_id = (params[:parent_type] == "Order" ? nil : params[:parent_id])
또 하나의 변화 :
parent_id = (params[:parent_type] == "Order") && params[:parent_id]
매우 표현적인 방식이 아닙니다 .. 사실 논리 연산자가 부울을 반환하지 않는다는 사실을 매우 혼란스럽게합니다 ... – luca
우리는 루비를 사용할 수 있습니다 삼항 연산자. 이 같은 뭔가 : 당신이 그것을 한 다른 방법으로 간단한 루비 경우 - 다른 사람을
parent_id = params[:parent_id] unless params[:parent_type] == "Order"
또는 쓰기 : parent_id
이 nil
값으로 설정되어
parent_id = params[:parent_type] == "Order" ? nil : params[:parent_id]
경우, 우리가하지 않는 구문을 쓸 수
parent_id = if (params[:parent_type] == "Order")
nil
else
params[:parent_id]
end
자세한 내용은 Idiomatic Ruby 코드를 보려면 awesome article을 찾았습니다.
awesome ... 이것은 일을하는 루비 방법이고, 과제는 앞에 간다. 이것이 우리가 반대로 같은 규칙을 가질 수 있도록 "제외"이유가 있습니다. –