Ruby on rails RubyonRails-如何将一个项目添加到一个有很多参考的项目中?
我是RoR新手,我必须实现一个用户提交评论应用程序。问题是,我希望用户可以喜欢提交和评论,但每次提交/评论只需一次 因此,我的用户模型是(该类称为guser): 但现在我不知道如何检查引用的类型(提交或评论)以及当前用户喜欢的idRuby on rails RubyonRails-如何将一个项目添加到一个有很多参考的项目中?,ruby-on-rails,Ruby On Rails,我是RoR新手,我必须实现一个用户提交评论应用程序。问题是,我希望用户可以喜欢提交和评论,但每次提交/评论只需一次 因此,我的用户模型是(该类称为guser): 但现在我不知道如何检查引用的类型(提交或评论)以及当前用户喜欢的id 我该怎么做?在用户和提交之间需要一个单独的连接表。然后,只需点击带有用户id和提交id的“创建”操作即可 def create @like = Like.create( user_id: current_user.id, submi
我该怎么做?在用户和提交之间需要一个单独的连接表。然后,只需点击带有用户id和提交id的“创建”操作即可
def create
@like = Like.create(
user_id: current_user.id,
submission_id: params[:submission_id]
)
render #whatever
end
def destroy
@like = current_user.likes.find_by_submission_id(params[:submission_id])
@like.destroy!
render :json => @like
end
private
def like_params
params.require(:like).permit(:submission_id)
end
在User.rb中:
has_many :likes, dependent: :destroy
在Submission.rb中:
has_many :likes
has_many :likers, through: :likes, source: :user
在Like.rb中:
belongs_to :user
belongs_to :submission
要允许提交和评论都获得喜欢,只需使你的喜欢关联多态即可
谢谢Ancharee,我发现新的Likes模型存在的问题是,我需要提交意见和评论才能获得喜欢。出于这个原因,我认为我不能使用类似的对象,因为在我的情况下,我需要有一个提交或评论的参考,这取决于类似的。。。你会怎么做?谢谢您的时间。只需使其具有多态性:)rails指南对如何做到这一点给出了很好的解释。
has_many :likes, dependent: :destroy
has_many :likes
has_many :likers, through: :likes, source: :user
belongs_to :user
belongs_to :submission