我的syntax error is solved,但现在我又遇到了另一个问题。
我有一个模型用户和帖子。此外,我已经创建了名为Like的附加模型(用于喜欢/不喜欢的系统)。所以,我写了一个方法来检查模型Like的副本是否同时具有给定的'post_id'和'user_id',然后给定的用户喜欢给定的帖子。这是我方法的代码
def licked(p,u)#p - post, u - user
if Like.all.empty? then return false
else
if (Like.where(post_id: p.id).empty?)
return false
else
posts=Like.where(post_id: p.id)
if ((posts.length<2) && (posts[0].user_id==u.id) && (posts[0].action!=nil))==true then return true
else
if ((posts.length<2) && (posts[0].user_id!=u.id)&& (posts[0].action!=nil)) then return false
else posts.each do |i|
if (i.user_id==u.id&& (posts[0].action!=nil)) then return true
end
end
end
end
end
end
end
很抱歉,如果有很多if,我没有找到任何其他方式来重新安装它,无论如何它不起作用。所以我要求你的帮助:要么改变现有代码,要么以其他方式改进,谢谢。
答案 0 :(得分:4)
你不需要任何逻辑。
def liked(post, user)
Like.where(user_id: user.id, post_id: post.id).where.not(action: nil).exists?
end