更新アクションには編集メソッドにインスタンス変数がありますか?ルビー・オン・レール
概要
更新アクションには編集メソッドにインスタンス変数がありますか?
検証を含むフォームを開発していて、既存の入力を削除せずに編集フォームをレンダリングしたいと考えています。ただし、編集フォームのインスタンス変数では nill が返されました。 インスタンス変数を保持する方法はありますか?
def update
render ‘edit’ and return unless account.update(params)
end
def edit
@name = Account.find(params[:id]
end
解決策
いいえ、その理由は次のとおりです。
おそらく次のようにして欲しいものを得ることができます:
def update
@name = account.name # I'm guessing, here, because accessing `name` in the edit action seems to be cut
render ‘edit’ and return unless account.update(params)
end
def edit
@name = Account.find(params[:id]
end
ただし、より標準的な方法は、アカウント インスタンスを変数に保存することです。
@account = Account.find(params[:id])
そしてそれをビューで使用します(form_for @account など)。ただし、これはあなたのユースケースに適合する場合と適合しない場合があります。