문이 작동하지 않는 경우 한 줄
<%if @item.rigged %>Yes<%else%>No<%end%>
이런 생각을 하고 있었어요?
if @item.rigged ? "Yes" : "No"
하지만 효과가 없습니다.루비가 가지고 있는 것은||=
어떻게 사용하는지조차 잘 모르겠어요
제거한다.if
부터if @item.rigged ? "Yes" : "No"
3항 연산자에 폼이 있습니다.condition ? if_true : if_false
루비에서, 조건과.then
의 일부if
식은 식 구분 기호(즉, 식 구분 기호)로 구분해야 합니다.;
또는 새로운 라인) 또는then
키워드
이 모든 것이 가능합니다.
if @item.rigged then 'Yes' else 'No' end
if @item.rigged; 'Yes' else 'No' end
if @item.rigged
'Yes' else 'No' end
루비에도 조건부 연산자가 있지만, 그것은 완전히 불필요합니다.조건부 연산자는 연산자이기 때문에 C에서 필요합니다.if
는 문이므로 값을 반환할 수 없으므로 값을 반환하려면 값을 반환할 수 있는 것을 사용해야 합니다.그리고 C에서 값을 반환할 수 있는 것은 함수와 연산자뿐이며, 만들 수 없기 때문에if
C의 함수, 당신은 연산자가 필요합니다.
하지만 루비에서는,if
는 표현입니다.사실 모든 것은 루비의 표현이므로 이미 값을 반환할 수 있습니다.조건 연산자가 존재할 필요도 없고, 사용할 필요도 없습니다.
BTW: 질문을 할 때 사용되는 방법의 이름은 다음과 같이 물음표로 지정하는 것이 일반적입니다.
@item.rigged?
이것은 Ruby에서 조건 연산자를 사용할 때의 또 다른 문제를 보여줍니다.
@item.rigged? ? 'Yes' : 'No'
여러 개의 물음표가 서로 가까이 붙어 있어서 읽기가 어려울 뿐입니다.
다음의 경우 한 줄:
<statement> if <condition>
고객 사례:
"Yes" if @item.rigged
"No" if !@item.rigged # or: "No" unless @item.rigged
내가 아는 바로는
한 줄 3개
a = 10 if <condition>
예:
a = 10 if true # a = 10
b = 10 if false # b = nil
a = 10 unless <condition>
예:
a = 10 unless false # a = 10
b = 10 unless true # b = nil
a = <condition> ? <a> : <b>
예:
a = true ? 10 : 100 # a = 10
a = false ? 10 : 100 # a = 100
도움이 되길 바랍니다.
셸 및 C 라인 구조는 모두 작동합니다(루비 1.9.3p429).
# Shell format
irb(main):022:0> true && "Yes" || "No"
=> "Yes"
irb(main):023:0> false && "Yes" || "No"
=> "No"
# C format
irb(main):024:0> true ? "Yes" : "No"
=> "Yes"
irb(main):025:0> false ? "Yes" : "No"
=> "No"
만약 조건이 삼원 연산자로 커버될 수 있다면.
@item.rigged? ? 'Yes' : 'No'
단순화를 위해 0인 경우 일부 값을 기본값으로 설정해야 하는 경우 다음을 사용할 수 있습니다.
@something.nil? = "No" || "Yes"
사용할 수 있는 항목:
(@item.rigged) ? "예" : "아니오"
@item.rigged가 참이면 'Yes'를 반환하고, 그렇지 않으면 'No'를 반환합니다.
루비 태그에서 콘텐츠를 생성할 수 있습니다.
v
<%= @item.rigged? ? "Yes" : "No" %>
체크 표시(v)는 등호를 사용하여 HTML의 텍스트를 생성함을 나타냅니다.
if apple_stock > 1
:eat_apple
else
:buy_apple
end
위의 문장은 루비로 된 3차 문장의 형태로 다음과 같이 쓸 수 있습니다.
apple_stock > 1 ? :eat_apple : :buy_apple
언급URL : https://stackoverflow.com/questions/3827874/one-line-if-statement-not-working
'programing' 카테고리의 다른 글
템플릿에서 직접 Vuex 변수 상태 변경 (0) | 2023.06.14 |
---|---|
매개 변수 동작이 없는 C 함수 (0) | 2023.06.09 |
Linux 서버에 설치된 Oracle 버전을 찾는 방법(터미널 내) (0) | 2023.06.09 |
datetime 인스턴스가 다른 두 datetime 개체 사이에 있는지 확인합니다. (0) | 2023.06.09 |
장고에서 카운트 주석을 위해 객체를 필터링하는 방법은 무엇입니까? (0) | 2023.06.09 |