Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 可以给rails ActionText中提到的@用户发送电子邮件吗?_Ruby On Rails_Trix_Actiontext - Fatal编程技术网

Ruby on rails 可以给rails ActionText中提到的@用户发送电子邮件吗?

Ruby on rails 可以给rails ActionText中提到的@用户发送电子邮件吗?,ruby-on-rails,trix,actiontext,Ruby On Rails,Trix,Actiontext,我遵循了GoRails教程,在ActionText中使用@References。我想自动向提到的任何@用户发送电子邮件,提醒他们对话。我认为这在Rails中是微不足道的,但找不到任何关于如何做到这一点的文档 有人知道这将如何实现吗 GoRails:根据您的描述,我相信您希望有一个全面的 将执行以下操作的功能: 在文本区域中检测@+用户名(-您需要文本区域 键盘输入事件侦听器和特殊字符模式条件 识别@+用户名) 列出与您的@+用户名相关的所有用户模糊搜索(-您需要创建一个支持 按用户名搜索,并允许

我遵循了GoRails教程,在ActionText中使用@References。我想自动向提到的任何@用户发送电子邮件,提醒他们对话。我认为这在Rails中是微不足道的,但找不到任何关于如何做到这一点的文档

有人知道这将如何实现吗


GoRails:

根据您的描述,我相信您希望有一个全面的 将执行以下操作的功能:

  • 在文本区域中检测
    @+用户名
    (-您需要文本区域
    键盘输入事件侦听器和特殊字符模式条件
    识别
    @+用户名
  • 列出与您的
    @+用户名相关的所有用户
    模糊搜索(-您需要创建一个支持 按用户名搜索,并允许F/E随时请求此API 使用
    @+用户名在文本区域中键入
  • 能够从
    @提及
    下拉列表中选择用户(-a纯F/E行为,只需另一个事件侦听器即可检测用户 选择并将所选用户名注入该文本区域
  • 评论对话后自动提醒
    @提及
    用户(-此处需要B/E功能。您的服务器将具有此功能 评论后的对话数据,服务器需要检查 对话包含任何
    @提及
    部分,如果有,则 找到与该
    @提及
    相关的用户,并向该用户发送电子邮件
    通过直接使用Mailer或间接使用mail Worker。)
  • 这只是实现此功能的一种简单方法,无需使用任何第三方界面。即使要在
    Trix edior
    中使用
    ActionText
    ,您也需要 至少有能力

  • 提供API以返回搜索的用户列表结果
  • 并至少在B/E中为那些提到的用户发送邮件

  • 如果我的评论有任何部分不清楚,请告诉我您是否需要更多详细信息。

    根据您的描述,我相信您希望有一个全面的 将执行以下操作的功能:

  • 在文本区域中检测
    @+用户名
    (-您需要文本区域
    键盘输入事件侦听器和特殊字符模式条件
    识别
    @+用户名
  • 列出与您的
    @+用户名相关的所有用户
    模糊搜索(-您需要创建一个支持 按用户名搜索,并允许F/E随时请求此API 使用
    @+用户名在文本区域中键入
  • 能够从
    @提及
    下拉列表中选择用户(-a纯F/E行为,只需另一个事件侦听器即可检测用户 选择并将所选用户名注入该文本区域
  • 评论对话后自动提醒
    @提及
    用户(-此处需要B/E功能。您的服务器将具有此功能 评论后的对话数据,服务器需要检查 对话包含任何
    @提及
    部分,如果有,则 找到与该
    @提及
    相关的用户,并向该用户发送电子邮件
    通过直接使用Mailer或间接使用mail Worker。)
  • 这只是实现此功能的一种简单方法,无需使用任何第三方界面。即使要在
    Trix edior
    中使用
    ActionText
    ,您也需要 至少有能力

  • 提供API以返回搜索的用户列表结果
  • 并至少在B/E中为那些提到的用户发送邮件

  • 如果我的评论中有任何部分不清楚,请告诉我您是否需要更多详细信息。

    我不是100%,但这里有一个想法您可以尝试。由于本教程将嵌入对象添加到富文本对象中,您可以在模型中执行以下操作:

    has_rich_text :content
    
    after_create do
      content.embeds.each do |embed|
        # now you have each embeded object, I guess you could use that sgid that
        # he name on the tutorial a few times to find if the embeded object is a 
        # user or something else, and then fire the email. I leave this part to 
        # you since I didn't actually tried ActionText yet, I just saw the 
        # tutorial and read parts of the code ;P
      end
    end
    

    我不是100%,但这里有一个想法你可以玩。由于教程将嵌入对象添加到富文本对象中,你可以在模型中执行类似操作:

    has_rich_text :content
    
    after_create do
      content.embeds.each do |embed|
        # now you have each embeded object, I guess you could use that sgid that
        # he name on the tutorial a few times to find if the embeded object is a 
        # user or something else, and then fire the email. I leave this part to 
        # you since I didn't actually tried ActionText yet, I just saw the 
        # tutorial and read parts of the code ;P
      end
    end
    

    有关于此主题的Gorals教程:

    看着这张照片,似乎

    after_create :send_notifications
    
    def send_notifications
      users = user_mentions
      users.each do |user|
        PostMailer.user_mention(self, user).deliver_now
      end
    end
    
    def user_mentions
      @users ||= body.body.attachments.select{ |a| a.attachable.class == User }.map(&:attachable).uniq
    end
    

    有关于此主题的Gorals教程:

    看着这张照片,似乎

    after_create :send_notifications
    
    def send_notifications
      users = user_mentions
      users.each do |user|
        PostMailer.user_mention(self, user).deliver_now
      end
    end
    
    def user_mentions
      @users ||= body.body.attachments.select{ |a| a.attachable.class == User }.map(&:attachable).uniq
    end
    

    我将ActionText@References与注意到的gem集成在一起,向被提及的用户发送电子邮件或短信。似乎效果很好。如上所述,我通过以下方式提取了每篇帖子中提到的用户:

    body.body.attachments.select{|a| a.attachable.class==User}.map(&:attachable).uniq
    

    我将ActionText@References与注意到的gem集成在一起,向被提及的用户发送电子邮件或短信。似乎效果很好。如上所述,我通过以下方式提取了每篇帖子中提到的用户:

    body.body.attachments.select{|a| a.attachable.class==User}.map(&:attachable).uniq
    

    由于电子邮件无论如何都需要在后端发送,因此不必为所有这些前端的铃声和口哨(自动完成等)而操心。它们只用于用户体验。核心功能如下所示:“将文本保存到数据库时,请扫描其中的
    @提及内容
    ,并将发送给具有找到句柄的用户的电子邮件排入队列“。如果我们这样说的话,那么actiontext/trix就变得无关紧要了。后端并不关心使用什么编辑器来编写文本。因为电子邮件无论如何都需要在后端进行,所以没有必要全神贯注于所有这些前端提示(自动完成等)。它们仅用于用户体验。核心功能非常简单:“当文本保存到数据库时,扫描它以查找
    @提及的内容,并将电子邮件排队发送给具有找到句柄的用户”。如果我们这样说,那么actiontext/trix就变得无关紧要了。后端并不关心使用什么编辑器来编写文本。是的,应该是这样的,我想(我也没有接触actiontext:))是的,应该是这样的,我想(我也没有接触actiontext:)更好的是,您可以执行
    body.body.attachables.select{a | a.class==User}.uniq
    Be