を:
model.update(hash_that_has_no_description_key)
、あなたがいないなら:description
に触れて::description
キーを持たないハッシュをupdate
に送信することは、 :description => nil
でハッシュで送信します。 model
がすでに有効な場合(つまり、説明がある場合)、update
は:description
には触れないため無効にしません。
あなたはこの言う:その属性は属性が要求本体から存在していない、Railsはレコードを更新するべきではないという意味、存在しない場合
を。
あなたはそれがupdate
コールの着信データを準備して、あなたがコントローラでこのロジックに対処する必要があります(モデルは本当に何も知らないはず)リクエストボディの話をしているので。
あなたは、コントローラにチェックし、文句を言うことができます:
data = whatever_params
if(!data.has_key?(:description))
# Complain in an appropriate manner...
end
# Continue as now...
あるいは全く:description
が存在しない場合は、:description => nil
を含めることができます
def whatever_params
data = params.require(...).permit(...)
data[:description] = data[:description].presence # Or however you prefer to do this...
data
end
これは動作するはずですが。もっとコードを貼り付けることはできますか? – Rahul