【发布时间】:2017-05-08 06:23:39
【问题描述】:
我想限制访问者多次提交表单,而我认为唯一的方法是使用 cookie。在我的控制器中,我创建了一个 cookie:
class RatingsController < ApplicationController
require 'securerandom'
before_action :session_cookie
def create
@rating = Rating.new(rating_params)
@rating.save
render json: { rating: @rating.casino.average_rating.to_f.round(2) }, status: 200
end
private
def rating_params
params.require(:rating).permit(:score, :casino_id)
end
def session_cookie
cookies[:name] = { value: SecureRandom.base64, expires: Time.now + 3600}
end
end
我正在使用的表单 - 通过单击星号提交(这是 5 星评级,我使用 ajax 提交)。现在,如何使用该 cookie 限制访问者再次提交表单?第一个想法是向db添加一列并在那里保存一个cookie,然后使用验证来检查cookie的唯一性,但我不知道这是否是个好主意。
【问题讨论】:
标签: jquery ruby-on-rails ajax cookies