2013-12-10 2 views
1

그래서 저는 이것을 RoR 앱의 컨트롤러에 작성했습니다. @week 변수가 내가 좋아하는 뭔가를 보이는 문자 "N"또는보기Ruby on Rails 기능이 예상대로 작동하지 않습니다.

에서 "P"를 표시 할 수 있도록 Date.today.cweek % 2 == 0의 결과에 따라 "E"또는 "N"를 개최한다

class KalendarController < ApplicationController 

    def show 
    @week = 
    if Date.today.cweek % 2 == 0 
     puts "E" 
    else 
     puts "O" 
    end 
    end 
end 

이 :

<h1>Kalendar#show</h1> 
<p>Find me in app/views/kalendar/show.html.erb</p> 


<p><%= @week %> 

그러나 이것은 작동하지 않습니다. 누군가 내가 잘못하고있는 것을 지적 할 수 있습니까?

답변

2

puts은 문자열을 명령 줄 밖으로 출력하지만 nil을 반환합니다. 따라서 귀하의 if 성명서의 두 부서 모두 nil을 반환했으며 @weeknil으로 설정되었습니다.

따라서 puts과 상품을 삭제하십시오.

@week = 
    if Date.today.cweek % 2 == 0 
    "E" 
    else 
    "O" 
    end 
+0

이것은 멋지다! 나는 Ruby를 전통적으로 배웠다 : D. 감사합니다 : D – Emanuel

+3

'@week = Date.today.cweek % 2 == 0? "E": "O"' – jstim

1

계수가 필요하지 않습니다. even? 메서드를 사용할 수 있습니다.

@week = Date.today.cweek.even? ? "E" : "O" 
+0

도 작동하지 않습니다. – Emanuel

+0

'@week = Date.today.cweek.even? ? "E": "O"' – lulalala

+0

오타가있었습니다. 죄송합니다. 지금 시도해보십시오. –

관련 문제