Ich möchte einen Besucher beschränken, um das Formular mehr als einmal einzureichen, und die einzige Möglichkeit, das zu tun, wie ich denke, ist Cookies. In meinem Controller erstelle ich ein Cookie:Beschränken Sie einen Besucher senden Sie das Formular, wenn es bereits von ihm eingereicht wurde
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
Die Form, die ich verwende - einreicht, indem Sie auf einen Stern klicken (es ist ein 5-Sterne-Bewertung, und ich verwende ajax
es einreichen). Und nun, wie kann man einen Besucher darauf beschränken, das Formular mit diesem Cookie erneut einzureichen? Die erste Idee war, eine Spalte zu db hinzuzufügen und dort ein Cookie zu speichern, und dann die Validierung zu verwenden, um die Eindeutigkeit von Cookies zu überprüfen, aber ich weiß nicht, ob dies eine gute Idee ist.
Die App hat keine Benutzer, die sich anmelden können. –