我在我的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
答案 0 :(得分:2)
我假设用户可以拥有多个收藏夹,因为您尝试通过params[:id]
单一收藏。如果是这种情况,请尝试将.favorite
更改为.favorites
。
希望能解决它!
答案 1 :(得分:0)
我猜用户和收藏夹之间的关系是has_many所以在这种情况下你应该使用
current_user.favorites