2017-10-18 9 views
0

私はwork_historiesのフォームを持っています。ユーザーが作業履歴を削除すると、このコントローラアクション(work_histories#show)を呼び出すuser_work_histories_urlの代わりに、ユーザーのプロフィールページにリダイレクトされます。 user_path(@user)というユーザーのプロファイルページにリダイレクトしたかったのです。railsは破壊操作後にユーザーをプロフィールページにリダイレクトします

user_work_histories_urlの代わりにuser_path(@user)にリダイレクトするようにwork_histories destroyアクションを変更しようとしましたが、削除したばかりのジョブのIDが見つかりませんでした。

ここwork_histories

# DELETE /users/:user_id/work_histories/:id 
def destroy 
@work_history = WorkHistory.find(params[:id]) 

@work_history.destroy 
respond_to do |format| 
    format.html { redirect_to user_work_histories_url, 
       notice: "The work history for your #{@work_history.job_title.upcase} job was successfully destroyed." } 
    format.json { head :no_content } 
end 
end 

のための私のコントローラは、ここでwork_histories

<p id="notice"><%= notice %></p> 

<p> 
    <strong>Job Title:</strong> 
    <%= @work_history.job_title %> 
</p> 

<p> 
    <strong>Job Description:</strong> 
    <%= @work_history.description %> 
</p> 

<%= link_to 'Back', user_work_histories_path(@user) %> | 
<%= link_to 'Edit', edit_user_work_history_path(@user, @work_history) %> | 
<%= link_to 'Delete', user_work_history_path(@user, @work_history), method: :delete, 
    data: { confirm: 'Are you sure you want to delete this work history?' } %> 
+0

を維持していますか?おそらく、レコードを削除する前に通知メッセージを作成する必要があります。 – Smek

答えて

0

ためshow.html.erbだだが、私はそれを考え出したと考えてください。私はこれが "レールの道"であるかどうか、またはそれが私のハッキングされた一緒の解決策のちょうどもう一つであるかどうかは分かりません。

私はuser_url(@user)を呼び出そうとしていたwork_historyコントローラーにいましたが、これはユーザーコントローラーでの作業方法ですが、user_url(@ work_history.user)を変更すると動作するようです。作業履歴はユーザーに属します。それは今のところうまくいく。 URLを変更するときは、通知メッセージを

# DELETE /users/:user_id/work_histories/:id 
def destroy 
@work_history = WorkHistory.find(params[:id]) 

@work_history.destroy 
respond_to do |format| 
    format.html { redirect_to user_url(@work_history.user), 
       notice: "The work history for your #{@work_history.job_title.upcase} job was successfully destroyed." } 
    format.json { head :no_content } 
end 

エンド

関連する問題