以前質問をしたところ、いくつかの素晴らしい回答が得られました。
そこで与えられたいくつかのアドバイスの裏で、次のコントローラーロジックを動かしてみました
if params[:concept][:consulted_legal] == 0 && params[:concept][:consulted_marketing] == 1
@concept.attributes = {:status => 'Awaiting Compliance Approval'}
elsif params[:concept][:consulted_marketing] == 0 && params[:concept][:consulted_legal] == 1
@concept.attributes = {:status => 'Awaiting Marketing Approval'}
elsif params[:concept][:consulted_marketing] == 0 && params[:concept][:consulted_legal] == 0
@concept.attributes = {:status => 'Awaiting Marketing & Legal Approval'}
else
@concept.attributes = {:status => 'Pending Approval'}
end
モデルに次のように入力します。
def set_status
if status.blank?
if (consulted_legal == true) && (consulted_marketing == true)
status = "Pending Approval"
elsif (consulted_legal == true) && (consulted_marketing == false)
status = "Awaiting Marketing Approval"
elsif (consulted_legal == false) && (consulted_marketing == true)
status = "Awaiting Legal Approval"
elsif (consulted_legal == false) && (consulted_marketing == false)
status = "Awaiting Marketing & Legal Approval"
end
end
true # Needs to return true for the update to go through
end
before_save コールバックから呼び出しています。
デフォルトでは、consulted_legal と Consulted_marketing の両方の属性が null ではなく false に設定されています。
if consulted_legal?
例えば。
ただし、このロジックは機能していないようです。オブジェクトを調べると、ステータスが何も設定されていません。なぜこれが起こっているのか誰にもわかりますか?たとえば、モデルで属性が間違ってアクセスされる方法を理解しましたか?
ティア