2017-10-18 1 views
0

Ich habe ein Formular für work_histories. Wenn ein Benutzer einen Arbeitsverlauf löscht, möchte ich, dass sie auf die Benutzerprofilseite umgeleitet werden, anstatt auf die user_work_histories_url, die diese Controlleraktion aufruft (work_histories # show). Ich wollte zur Benutzerprofilseite umleiten, die user_path (@user) ist.Schienen Benutzer auf Profilseite umleiten, nachdem Aktion

Ich habe versucht, die Aktion work_histories destroy zu ändern, um in user_path (@user) statt user_work_histories_url umzuleiten, aber es sagt, dass die ID des gerade gelöschten Jobs nicht gefunden wurde.

hier ist mein Controller für 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 

hier ist der show.html.erb für 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

halten Sie die Hinweismeldung, wenn Sie die URL ändern? Vielleicht sollten Sie die Hinweisnachricht erstellen, bevor Sie den Datensatz löschen. – Smek

Antwort

0

denken, dass ich es herausgefunden. Ich bin mir nicht sicher, ob dies der "Weg" ist, es zu tun oder ob es nur eine andere meiner gehackten Lösungen ist.

Ich war in der Work_history Controller versuchen, user_url (@user) zu rufen, wie ich es in den Benutzer-Controller tun, aber sieht aus wie es funktioniert, wenn ich es ändern user_url (@ work_history.user). Arbeitsverlauf gehört dem Benutzer. Es funktioniert ... vorerst.

# 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 

Ende