【问题标题】:rails redirect user to profile page after destroy action在销毁操作后,rails 将用户重定向到个人资料页面
【发布时间】:2017-10-18 19:45:29
【问题描述】:

我有一个 work_histories 表格。当用户删除工作历史记录时,我希望他们被重定向到他们的用户个人资料页面,而不是调用此控制器操作 (work_histories#show) 的 user_work_histories_url。我想重定向到 user_path(@user) 的用户个人资料页面。

我尝试将 work_histories destroy 操作更改为重定向到 user_path(@user) 而不是 user_work_histories_url 但它说找不到我刚刚删除的作业的 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 的 show.html.erb

<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?' } %>

【问题讨论】:

  • 您更改网址时是否保留通知消息?也许您应该在删除记录之前创建通知消息。

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

我想我明白了。我不确定这是否是这样做的“rails 方式”,或者这只是我的另一种解决方案。

我在 work_history 控制器中试图调用 user_url(@user),这就是我在用户控制器中的操作方式,但当我更改它 user_url(@work_history.user) 时看起来它可以工作。工作历史属于用户。它工作......现在。

# 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

结束

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多