2011-09-04 18 views
0

仍然在使用Rails/MongoDB應用程序,但還有另一個問題。 這一次,我可以創建嵌入式文檔,但不能刪除它們,雖然我一直在做什麼已經在另一個Stackoverflow主題(http://stackoverflow.com/questions/3693842/remove-an-embedded-文檔中-mongoid)無法使用Mongoid刪除嵌入元素

這裏去我的控制器:

class FeedSubscribtionsController < ApplicationController 
    has_to_be_connected 

    def create 
    if session[:user_id] != params[:id] 
     @self  = current_user 
     attributes = { :user => @self, :userId => params[:id], :feedId => params[:feed] } 
     subscribtion = FeedSubscribtion.create attributes 
     success  = subscribtion.save 
     render json: { :success => success, :feed => params[:feed] } 
    end 
    end 

    def destroy 
    success  = false 
    if session[:user_id] != params[:id] 
     @self  = current_user 
     uid, fid = params[:id], params[:feed] 
     @feed  = @self.feed_subscribtions.where :userId => uid, :feedId => fid 
     if @feed.count > 0 
    @self.feed_subscribtions.delete @feed.first.id.to_s 
     success = @feed.first.save 
     end 
    end 
    render json: { :success => success, :feed => params[:feed] } 
    end 
end 

最奇怪的是,似乎一切都進展順利:成功是在渲染JSON對象等於true。 我也嘗試用「@ self.save」替換「success = @ feed.first.save」:在這種情況下,它返回false,但沒有進一步的解釋。

(我知道,爲了這個控制器背後的邏輯是完美的,我要把@feed陣列上環,我會一旦它開始工作^^它只是更容易調試方式)

所以,有什麼方法可以找出爲什麼@ßelf.save失敗,或者爲什麼@ feed.first.save不會失敗,但實際上並不保存?

謝謝。

回答

0

這裏是你在做什麼,因爲我看到它

您正在使用FeedSubscriptionsController如果@ feed.first刪除與ID的對象,然後嘗試並保存@ feed.first,但@ feed.first指向一個已經被刪除的對象,所以它沒有保存它。