2016-08-05 32 views
0

我想如果檢索與Mongoid和Rails用戶之間創建連接的一些信息存在,這裏是代碼:Mongoid查詢爲一個文件內關於陣列的內容

class ContactController < ApplicationController 
    def addNew 
    @newFriend = params[:username] 
    puts "***value of @newFriend***" 
    puts @newFriend 
    puts "***end****" 
    Contact.where(owner: current_user).where(friendlist: params[:username]) do |contact| 
     puts "***value of @contactAlreadyExists***" 
     puts contact 
     puts "***end****" 
     if contact == nil 
     Contact.find_or_create_by(owner: current_user) do |contact| 
      contact.push(friendlist: params[:username]) 
     end 
     end 
    end 
    redirect_to "/" 
    end 
end 

控制檯不顯示來自

puts "***value of @contactAlreadyExists***" 
     puts contact 
     puts "***end****" 
+0

不要你的意思'Contact.where(...)每個do'? –

+0

現在收集是空的,必須創建,如果不存在。 –

+0

但您是否期待'Contact.where(...)確實聯繫我們?你將一個塊交給'where',而不是一個遍歷查詢結果的迭代器。 –

回答

0

什麼這是一個暫時的解決方案事業前再次上線添加某人無法查詢內部發生

user.contacts.find_or_create_by(owner: user.id) do |contact| 

代碼:

class ContactController < ApplicationController 
     def addNew 
     @newFriend = params[:username] 
     puts "***value of @newFriend***" 
     puts @newFriend 
     puts "***end****" 
     User.find_by(username: current_user.username) do |user| 
      puts "*** here enters***" 
      user.contacts.find_or_create_by(owner: user.id) do |contact| 
      User.find_by(username: params[:username]) do |friend| 
       puts "***enter on friend" 
       puts friend 
       contact.push(friendlist: friend.id) 
      end 
      puts "***contact***" 
      puts contact 
      puts "***end****" 
      end 
     end 
     redirect_to "/" 
     end 
    end