Ruby on rails 允许用户收藏帖子

Ruby on rails 允许用户收藏帖子,ruby-on-rails,Ruby On Rails,我正在努力让用户喜欢一篇文章 我创建了一个名为favorite的模型 belongs_to :user belongs_to :post 它存储用户id和post id 我还创建了一个FavoritesController class FavoritesController < ApplicationController def create @post = Post.find(params[:post_id]) current_user.favorite(@pos

我正在努力让用户喜欢一篇文章

我创建了一个名为favorite的模型

belongs_to :user
belongs_to :post
它存储用户id和post id

我还创建了一个FavoritesController

class FavoritesController < ApplicationController

  def create
    @post = Post.find(params[:post_id])
    current_user.favorite(@post)
  end

  def destroy
    @post = Post.find(params[:id])
    current_user.unfavorite(@post)
  end

end
当我尝试单击“收藏夹”时,我得到:

wrong number of arguments (0 for 1)

Parameters:

{"utf8"=>"✓",
  "authenticity_token"=>"HjiANQUqTQVEqy0yzfLFMlnC8RsTiY5kVlvIUnD5OSIaSYSi4ELSuC95vRMIBA/6W+KvzCWMMXQ==",
"post_id"=>"7",

我做错了什么?还有更好的方法吗?

如果你只是想让“投票/偏袒”系统正常工作,我建议使用gem之类的工具。

错误在哪一行?一个问题是,在你的
收藏的
方法中,你正在传递一篇文章,但随后用一个帖子id调用create。@PhilipHallstrom,所以我尝试将收藏的方法从收藏更改为收藏,现在它重新加载,但什么也没有发生。上面写着第43行,这是我的def收藏夹(post),你不能使用
收藏夹,因为这已经被定义为“使用有很多收藏夹”的一部分。啊哈。你知道问题出在哪里吗?你能把你完整的错误日志贴出来吗
# Favorites a post.
def favorite(post)
  favorite.create(post_id: post)
end

# Unfavorites a post.
def unfavorite(post)
  favorite.find_by(post_id: post).destroy
end
wrong number of arguments (0 for 1)

Parameters:

{"utf8"=>"✓",
  "authenticity_token"=>"HjiANQUqTQVEqy0yzfLFMlnC8RsTiY5kVlvIUnD5OSIaSYSi4ELSuC95vRMIBA/6W+KvzCWMMXQ==",
"post_id"=>"7",