最近在写一个 顶踩 功能,我实现了,但实现得一点都不优雅
恶心代码 javascript 代码
var likeable = function(){
var fadetime = 1800;
$(".home-like").click(
function(){
$.get("/topics/likeable",
function(data){
$(".like-info").css("display","block")
$(".home-like span").html("顶 " + data);
$(".like-info").fadeOut(fadetime);
}
)
.error(
function(){
$(".like-error-info").css("display","block")
$(".like-error-info").fadeOut(fadetime);
}
)
}
)
}
controller 代码
def likeable
@topic = Topic.last
@topicarr = @topic.likeable.to_s.split
if [email protected]?(request.remote_ip.to_s)
@topic.likeable = @topic.likeable.to_s + request.remote_ip.to_s + ' '
@topic.save
render :text => @topic.likeable.to_s.split.length
end
end
数据库 likeable 字段 存放得是用户的 ip,防止相同 ip 点击多次 格式类似于 "127.0.0.1 127.0.0.2 " 功能很简单,ajax 去请求一个地址 1 检查当前 ip 用户是否已经点击 2 如果点击,那就显示已经点击过了 3 如果没有点击,那就将 当前用户 ip 存入 likeable 字段 求优雅方案