Ruby on Rails更喜欢控制器&语法问题

时间:2015-05-31 08:57:30

标签: ruby-on-rails ruby syntax favorites

我在我的favorites_controller中创建了一个“destroy”方法。不知道我应该如何表达下面注释掉的要求,要求在params中找到当前用户最喜欢的ID。我知道我很接近,但我目前对ruby语法的了解尚未达到标准。当我使用我的应用程序的不喜欢的功能时,会弹出一个“未定义的方法'最喜欢的'#”错误并指向下面的[initialized?]'最喜欢的'变量行。请帮忙。谢谢!

def destroy
    # Get the post from the params
    @post = Post.find(params[:post_id])
    # Find the current user's favorite with the ID in the params
    favorite = current_user.favorite.find(params[:id]) 
    if favorite.destroy
      flash[:notice] = "Post was succesfully un-favorited"
      redirect_to @post 
      # Flash success and redirect to @post
    else
      flash[:error] = "There was an error in un-favoriting this post"
      redirect_to @post
      # Flash error and redirect to @post
    end
  end

2 个答案:

答案 0 :(得分:2)

我假设用户可以拥有多个收藏夹,因为您尝试通过params[:id]单一收藏。如果是这种情况,请尝试将.favorite更改为.favorites

希望能解决它!

答案 1 :(得分:0)

我猜用户和收藏夹之间的关系是has_many所以在这种情况下你应该使用 current_user.favorites