我正在嘗試實施投票系統,投票人受到選民ip_address的限制。每個IP地址一個投票
我有一個職位模型,其中many_votes和票屬於職位模型。
我的問題是如何以及在哪裏定義「current_user」以及如何在視圖中實現這一點。
目前我創建的投票是這樣的:除了人
<%= link_to(post_votes_path(post), :method => 'post') do %>
<%= song.votes.size %>
工作正常,可以投票,我想停止。請不要尋找寶石,我只是試圖從頭學習這個功能。
乾杯。
這裏是我的帖子控制器代碼:
def create
@post = Post.new(params[:post])
respond_to do |format|
if @post.save
format.html { redirect_to root_url, notice: 'Post was successfully created.' }
else
format.html { render action: "new" }
end
end
end
和表決控制器代碼創建行動:在ip
列
def create
@post = Post.find(params[:post_id])
@vote = @post.votes.create
respond_to do |format|
format.html { redirect_to root_url }
#format.js
end
end
你也可以告訴你的用戶如何存儲? – AnkitG
當前我沒有用戶表,我正在考慮在投票表中添加voter_id? – Joshua
您應該在您的投票表中添加一列'voter_ip',並將其放在投票人的IP:'@ post.votes.create(voter_ip:request.remote_ip)'(變量'request'僅在控制器中可用,當你收到一個請求時)然後像@Gene說的那樣,在你的Vote模型中添加'validates:voter_id,uniqueness:true'。 – MrYoshiji