使用 Mongoid 向数组添加多个值
Add multiple value to an array with Mongoid
我想向一个数组添加多个值,但只是第一次添加,下次我想添加一些东西时,调用跳过 ***just before filter ***
注释的过程。代码来了:
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 "*** just before filter ***"
user.contacts.find_or_create_by(owner: user.id) do |contact|
puts "*** enters before find the friend user***"
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
已解决!
终于通过了if
和else
里面两侧的触点。
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 "*** aqui entra justo antes de filtrar o crear***"
puts user.contacts
if user.contacts(owner: user.id).exists?
puts "***despues de comprobar si existe entra***"
user.contacts.find_by(owner: user.id) do |contact|
puts "***despues de crear el contacto entra***"
User.find_by(username: params[:username]) do |friend|
contact.push(friendlist: friend.id)
end
end
else
user.contacts.find_or_create_by(owner: user.id) do |contact|
puts "*** aqui entra justo antes de encontrar al usuario amigo***"
User.find_by(username: params[:username]) do |friend|
puts "***entra en friend"
puts friend
contact.push(friendlist: friend.id)
end
end
end
end
redirect_to "/"
end
end
我想向一个数组添加多个值,但只是第一次添加,下次我想添加一些东西时,调用跳过 ***just before filter ***
注释的过程。代码来了:
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 "*** just before filter ***"
user.contacts.find_or_create_by(owner: user.id) do |contact|
puts "*** enters before find the friend user***"
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
已解决!
终于通过了if
和else
里面两侧的触点。
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 "*** aqui entra justo antes de filtrar o crear***"
puts user.contacts
if user.contacts(owner: user.id).exists?
puts "***despues de comprobar si existe entra***"
user.contacts.find_by(owner: user.id) do |contact|
puts "***despues de crear el contacto entra***"
User.find_by(username: params[:username]) do |friend|
contact.push(friendlist: friend.id)
end
end
else
user.contacts.find_or_create_by(owner: user.id) do |contact|
puts "*** aqui entra justo antes de encontrar al usuario amigo***"
User.find_by(username: params[:username]) do |friend|
puts "***entra en friend"
puts friend
contact.push(friendlist: friend.id)
end
end
end
end
redirect_to "/"
end
end