【问题标题】:Sending request/accept notification for friendship发送请求/接受好友通知
【发布时间】:2020-10-23 14:03:58
【问题描述】:

我有一个相互友谊模型,其中一个用户请求建立友谊并创建一个模型,其中包含当前用户的 user_id 和朋友的 friend_id

然后朋友接受它并创建另一个逆模型。

现在我正在尝试针对这两种情况发送通知。问题是我的代码中的@friend(也是current_user)似乎为nil,否则就是无法正常工作。

  def notify_friend_request
    @friend = params[:friend]
    @url  = 'http://localhost:3000'
    @first_name = @friend.first_name
    @last_name = @friend.last_name
    @email = @friend.email
    @sent_user = current_user
    @sent_user_first_name = @sent_user.first_name
    @sent_user_last_name = @sent_user.last_name
    
    mail(to: @email,
         subject: 'You have a new friend request!')

可能出了什么问题?非常感谢您的帮助。

我的好友控制器,创建方法如下。根据请求或接受,似乎会调用适当的邮件方法(notify_friend_request vs. accept)

  def create
    @inviting_user = User.find(current_user.id)
    @friend = User.find(params[:friend_id])
    @friendship = current_user.friendships.build(:friend_id => params[:friend_id])
    if @friendship.save
      if @friend.friends.include? current_user
        UserMailer.with(friendship: @friendship).notify_friend_accept.deliver_later
      else 
        UserMailer.with(friendship: @friendship).notify_friend_request.deliver_later
      end
      

【问题讨论】:

    标签: ruby-on-rails ruby devise


    【解决方案1】:

    我用这段代码解决了这个问题。发个问题真的让我头脑清醒:

      def notify_friend_request
        @friendship = params[:friendship]
        @url  = 'http://localhost:3000'
        @first_name = User.find(@friendship.user_id).first_name
        @last_name = User.find(@friendship.user_id).last_name
        @sent_user = User.find(@friendship.friend_id)
        @sent_user_first_name = @sent_user.first_name
        @sent_user_last_name = @sent_user.last_name
        @email = @sent_user.email
        
        mail(to: @email,
             subject: 'You have a new friend request!')
      end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多