2013-08-28 70 views
0

我想打印出不同性別的患者的不同消息。所以我定義的一個變量的文本:根據患者的性別打印出不同的消息

p10 = "Bitte Kodierung überprüfen: Kode gilt überwiegend nur für #{@gender} Patienten." 

而且我的代碼我寫這樣的:

if patient.geschlecht == '2' && code.geschlecht == 'm' && code.geschlecht_fehler == 'm' 
    @gender = 'männliche' 
    @arr << p10 
    end 
if patient.geschlecht == '1' && code.geschlecht == 'w' && code.geschlecht_fehler == 'k' 
    @gender = 'weibliche' 
    @arr << p10 
end 

但不知何故,這不會工作,我認爲我得到的錯誤:

undefined local variable or method `gender' for #<DiagnoseController:0x50197e0> 

那麼我錯了什麼?或者,你會如何打印出不同的信息?

UPDATE_ _ __ _ __ _ __ _ __ _ __ _ __ _ _UPDATE_ __ _ __ _ __ _ __ _ __ _ __

現在我有沒有錯誤,但不知何故@gender獲取不在P10串insertet!怎麼了?

+0

請添加完整的堆棧跟蹤和整個控制器的操作代碼,我懷疑錯誤不是源於您發佈的部分 – bluehallu

+0

您可以發佈您的看法嗎? – Bigxiang

+0

我更新了我的問題 –

回答

0

問題是你已經定義了p10那個時候第一個@gender din用來存在。所以你可以做什麼,或者在你定義了性別之後把這個p10聲明放在兩個if中。或者僅在if中添加arr中的diff行,就像這樣。

flag = false 
if patient.geschlecht == '2' && code.geschlecht == 'm' && code.geschlecht_fehler == 'm' 
    @gender = 'männliche' 
    flag = true 
end 
if patient.geschlecht == '1' && code.geschlecht == 'w' && code.geschlecht_fehler == 'k' 
    @gender = 'weibliche' 
    flag = true 
end 
@arr << "Bitte Kodierung überprüfen: Kode gilt überwiegend nur für #{@gender} Patienten." if flag 

在分配給它一個值之前,您不能使用@gender

+0

問題是我不想總是重複p10!有沒有更短的 –

+0

@ user2724695我已經編輯了我的答案另一種方式 – dirtydexter

+0

編程初學者你能解釋我flag = flase/true是什麼意思?但我真的很滿意這個答案!謝謝! –