私は編集フォームページから、更新された情報を表示するプレビューページに移動しようとしています。現在、私はcontroller
にupdate
メソッドを追加しました。フォームが提出されたときにプレビューページにリダイレクトされます。しかし、プレビューページでは何も更新されず、データはデータベースに保存されません。Railsの更新メソッドがフォームデータを保存していません
jobs_controller.rb
def update
@job = Job.find(params[:id])
redirect_to preview_path(id: @job.id), notice: 'Job was successfully updated.'
end
ジョブ/ preview.html.erb
<span class="col-md-12 col-centered">
<%= link_to 'Edit', edit_job_path(@job), :class => "jobBack-btn" %>
<%= link_to "Publish",'#', id:'link_id', class: "btn" %>
</span>
私はupdate
方法を削除する場合は、編集フォームを保存し、(デフォルトでは)show
ページにリダイレクトします。私は変更を見るためにプレビューページに行く必要があります。私はupdate
のフォームデータを保存する方法で私が見逃しているものがわからない。
あなたはおそらく更新アクションのデフォルト実装を提供し、いくつかの宝石を使用しています。それを確認できますか? – Raffael
あなたの更新アクションは '@ job'を実際に更新するわけではありません。私はそのメソッドで '@ job.update(params.require( 'job'))'のようなものを見たいと思うでしょう。 (また、 '@ job.update'の戻り値をチェックしたいと思うかもしれません。) – Raffael
@Raffael私は更新用のデフォルトの実装を提供する宝石を使っていたとは思いません。あなたは '@ job'を取り出して何もしないので、実際に更新していない更新アクションについて正しいと思います。私は自分のコードを更新し、あなたのコメントのおかげで更新とリダイレクトが完了しました。 – teresa