0
내 질문에 대한 대답을 투표에 회부하도록 (이 경우) 특정 횟수만큼 내 응용 프로그램의 사용자를 제한하려고합니다. 나는 성공적으로 user_id 컬렉션을 멈추고 있지만 레코드는 계속 생성됩니다. 실제로 likes 테이블에서 레코드 만들기를 차단하는 유효성 검사가 필요합니다.validates_each user_id & question_id는 user_id의 수집을 중지하지만 기록을 만들지 않습니다.
마지막 두 개의 표가 USER_ID을 잃게하지만 여전히 만들어 볼 수 있듯이. 아래 코드는 내가 이것을 어떻게하는지 보여준다. 나는 어떤 질문에 대해서도 10 번 이상 투표하도록 사용자를 제한하려고 노력하고있다.
좋아요 모델 (나는 당신에게 반대로 has_many 연관성을 남겨 둡니다. 그러나 그들은 거기에 있습니다).
class Like < ActiveRecord::Base
belongs_to :site
belongs_to :user
belongs_to :question
validates_each :user_id do |row, attr, value|
m.errors.add :user_id, 'Too many likes' unless row.like_count < 10
end
def like_count
Like.count(:conditions => {:user_id => user_id, :question_id => question_id})
end
end
LikesController 번호 당신은 당신이 보는 정확히 무엇을하라는거야
class LikesController < ApplicationController
def create
@user = current_user
@site = Site.find(params[:site_id])
@like = @site.likes.create!(params[:like])
@like.user = current_user
@like.save
respond_to do |format|
format.html { redirect_to @site}
format.js
end
end
end
완벽한합니다. 그 병합 기능을 사용하는 방법을 잘 모르겠습니다. – bgadoci