acts_as_followers和friendly_id gems找不到id

时间:2017-01-15 15:46:56

标签: ruby-on-rails ruby ruby-on-rails-4 friendly-id acts-as-follower

我正在使用acts_as_follower gem和friendly_id gem。

我设置了acts_as_follower,一切正常,我可以根据需要关注Profiles。但现在我添加了friendly_id gem来将个人资料网址显示为profile/myname而不是profile/1

但是现在acts_as_follower宝石不起作用,它无法找到要遵循的个人资料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是友好的网址name

另外,新的friendly_id版本要求我找到这样的个人资料:

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

1 个答案:

答案 0 :(得分:1)

在控制器中

需要将其更改为

  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

然后这应该工作