我有這個呼叫我的投票模式:嘗試使用CURRENT_USER它是未定義
fires :vote_updated, :on => :update,
:actor => :user,
:secondary_subject => :video,
:if => lambda { |vote| ((vote.value == 1) || (vote.value == -1)) && (vote.video.user != current_user)}
如果你不熟悉,它的工作原理與timeline_fu plugin。
如果擁有投票視頻的用戶是當前用戶,我不希望該電話被解僱。這就是這條線進來:
:if => lambda { |vote| ((vote.value == 1) || (vote.value == -1)) && (vote.video.user != current_user)}
不過,我沒有current_user
這裏訪問。我如何解決這個問題?
下面是我的票控制器創建方法(實際上有沒有更新的方法):
def create
@video = Video.find(params[:video_id])
@vote = current_user.video_votes.find_or_create_by_video_id(@video.id)
if @vote.value.nil?
if params[:type] == "up"
@vote.value = 1
else
@vote.value = -1
end
elsif (params[:type] == "up" && @vote.value == 1) || (params[:type] == "down" && @vote.value == -1)
@vote.value = 0
elsif ((params[:type] == "up" && @vote.value == -1) || (params[:type] == "down" && @vote.value == 1)) || (@vote.value == 0)
if params[:type] == "up"
@vote.value = 1
else
@vote.value = -1
end
end
if @vote.save
respond_to do |format|
format.html { redirect_to @video }
format.js
end
else
respond_to do |format|
format.html
format.js
end
end
end
哪個控制器?這是什麼樣子? – 2011-04-18 05:14:12
哦,我明白你在做什麼......我問的是不同的。這並不是說用戶不能在自己的視頻上投票,而是不管是誰投票視頻,如果他/她是視頻的所有者,則不會爲current_user創建timeline_event對象。 – 2011-04-18 05:31:31
正確的,增加第二次更新 – 2011-04-18 06:30:13