acts_as_followers 和 friendly_id 宝石未找到 ID

acts_as_followers and friendly_id gems not finding id

我正在使用 acts_as_follower gem and friendly_id gem。

我设置了 acts_as_follower 并且一切正常,我可以按照要求进行 Profiles。但现在我添加了 friendly_id gem 以将配置文件 url 显示为 profile/myname 而不是 profile/1.

但是现在 acts_as_follower gem 不起作用,找不到要遵循的配置文件 ID:

这是我现在正在尝试的设置,但仍然不起作用。

  def follow
    @profile = Profile.find(params[:profile_id])
    current_user.follow(@profile)
    redirect_to :back
  end

  def unfollow
    @profile = Profile.find(params[:profile_id])
    current_user.stop_following(@profile)
    redirect_to :back
  end

之前是:

@profile = Profile.find(params[:id])

我得到的错误是:

Couldn't find Profile with 'id'=

正在传递的参数是:

{"id"=>"gurmukh-singh"} 

它现在正在寻找的 id 是友好的 url name

另外,新的 friendly_id 版本需要我找到这样的配置文件:

def set_story
  @profile = Profile.friendly.find(params[:id])
end

在您的控制器中,您需要将其更改为

  def follow
    @profile = Profile.friendly.find(params[:id])
    current_user.follow(@profile)
    redirect_to :back
  end

  def unfollow
    @profile = Profile.friendly.find(params[:id])
    current_user.stop_following(@profile)
    redirect_to :back
  end

那么这应该可以工作