問題の流れは次のようになります。誰かがオブジェクトを持ち、タイトルを持っています。ユーザは、編集コントローラ内でこのオブジェクトの名前をフォームで編集できます。名前は空でない必要があるため、ユーザーが空の名前でオブジェクトを保存しようとすると、検証エラーがスローされます。Rubyフォームは検証に失敗し、空の名前とブレッドクラムで「編集」を表示します。どうすれば修正できますか?
if @object.update_attributes(params[:object])
flash[:notice] = "Successfully updated object"
redirect_to @object
else
render :action => "edit"
end
この検証エラーにより、render :action => "edit"
が呼び出されます。この問題はここでは編集ビュー上で発生し、一連のブレッドクラムとタイトルの両方が塗りつぶされようとしますが、@object.update_attributes(params[:object])
がすでに呼び出されているので、オブジェクトはデータベースに保存されていませんが、 "これにより、ブレッドクラムは「Objects >> AwesomeObject >> Edit」の代わりに「Objects >> >> Edit」のように見えます。
私は最後に保存した名前を残すことができます。ユーザーが空白のフィールドを修正している間にデータベースをプレースホルダとして使用する ""
このコードは魅力的に機能しました!私は今まで組み込みの変更のハッシュを知りませんでした。 ありがとうございます! –