【问题标题】:Ruby on Rails - Friendly-ID - Id is processed as slug on destroy methodRuby on Rails - Friendly-ID - Id 在销毁方法上作为 slug 处理
【发布时间】:2016-09-07 16:41:20
【问题描述】:

除了我的用户模型的销毁方法之外,一切都运行良好。我现在很确定它与 Friendly_ID gem 有关。

如果我需要密码,则会收到 invalid password 错误。 如果我不需要密码,则 User '显然' 删除,但它没有。 (我的flash[:success] 显示相应的重定向)

服务器日志:

Processing by UsersController#destroy as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"SkfqooVdKgfsgoL78+yZDxSYoTJNqzUfmyWfGTv8LOxSEObnaKEhip837yrEK5bHVO0HJ/6dmKHqUZmiiWoqDg==", "user"=>{"current_password"=>"[FILTERED]"}, "commit"=>"Delete", "locale"=>"en", "id"=>"e2dc"}

这里的 ID 显示为“e2dc”,而不是 20 的真实 ID。(e2dc 是当前用户的用户名和 slug)

class User < ActiveRecord::Base
  extend FriendlyId
  friendly_id :username, use: [:slugged, :finders]
end

class UsersController < ApplicationController

  def destroy
    @user = current_user
    @user.id = params[:user_id]
    if @user.destroy_with_password(user_params)
        redirect_to feedbacks_url, notice: "User deleted."
    else
      render "account"
      flash.now[:notice] = @user.errors.full_messages
    end
  end
end

<%= simple_form_for(@user, :method => :delete) do |f| %>
  <%= f.input :current_password, autocomplete: "off", required: true %>
  <%= f.button :submit, "Delete" %>
<% end %>

我尝试过使用User.friendly.find,但没有任何运气。其他一切都适用于我的项目。

感谢您的建议

【问题讨论】:

    标签: ruby-on-rails devise destroy friendly-id


    【解决方案1】:

    尝试以下方法:

    def destroy
      @user = User.find(params[:id])
    
      if @user.destroy_with_password(params[:user][:current_password])
        redirect_to feedbacks_url, notice: "User deleted."
      else
        flash.now[:notice] = @user.errors.full_messages
        render "account"  
      end
    end
    

    【讨论】:

    • 这很好用,虽然我不明白为什么。使用我的控制器中的所有其他方法,(我什至在用户 update_with_password(user_params) 的同一控制器中有一个更新方法,我可以使用 @user = current_userfind.(params[:id])。无论如何,谢谢!!
    猜你喜欢
    • 2017-02-02
    • 2015-06-13
    • 2012-09-26
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多