2013-12-10 68 views
1

因此,我在RoR應用程序的控制器中編寫了此代碼。Ruby on Rails功能無法正常工作

class KalendarController < ApplicationController 

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

@week變量應持有「E」或「N」取決於Date.today.cweek % 2 == 0結果,這樣我可以顯示字母「N」或查看

「P」它看起來像這個:

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


<p><%= @week %> 

但是這不起作用。有人能指出我做錯了什麼嗎?

回答

2

puts在命令行中輸出字符串,但返回nil。因此您的if聲明的兩個分支返回返回nil,@week設置爲nil。因此刪除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

發生錯字,抱歉。現在就試試。 –