我有两个用户,我们称他们为 UserA 和 UserB。 UserA向UserB发送好友请求。这导致在 UserB 的数据库中创建一个名为“Friendtokens”的新属性。使用的数据库是MongoDB。
Friendtokens: {"919839398393"=>{"atoken"=>"f704e803061e594150b09ad8acabfc6105ac85ab", "confirmed"=>true}}
现在,当 UserA 决定删除 UserB 时,我需要修改 UserB 数据库的 Friendtokens 并删除 UserA 的手机号码。从它。
任何关于如何通过在 users_controller.rb 中编写简单代码来实现此目的的指导将不胜感激。
最佳答案
您提供的信息很少。这是我可以建议的模型:
class User
include Mongoid::Document
embeds_many :friend_tokens
field :phone_number
class FriendToken
include Mongoid::Document
embedded_in :user
belongs_to :friend, class_name: "User"
field :confirmed, type: Boolean
def phone_number
confirmed ? friend.phone_number : "Friend not confirmed, not showing user phone number !"
end
用户 Controller .rb
def create_friend_request
@user.friend_tokens << FriendToken.create(friend_request_params)
end
def confirm_friend_request
token = @userA.friend_tokens.select{|t| t.friend == @userB}.first
if token
token.confirmed = true
token.save
else
# Error message
end
end
def delete_friend
friend_for_A = @userA.friend_tokens.select{|t| t.friend == @userB}.first
# Check it has been found
if friend_for_A
# Delete friend token for A
friend_for_A.delete
# Switch to unconfirmed for user B (we can also assume the token exists)
friend_for_B = @userB.friend_tokens.select{|t| t.friend == @UserA}.first
friend_for_B.confirmed = false
friend_for_B.save
else
# Error messages
end
end
关于ruby-on-rails - 通过 users_controller.rb 中的代码修改用户的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31419278/