Ruby on rails 可以给rails ActionText中提到的@用户发送电子邮件吗?
我遵循了GoRails教程,在ActionText中使用@References。我想自动向提到的任何@用户发送电子邮件,提醒他们对话。我认为这在Rails中是微不足道的,但找不到任何关于如何做到这一点的文档 有人知道这将如何实现吗Ruby on rails 可以给rails ActionText中提到的@用户发送电子邮件吗?,ruby-on-rails,trix,actiontext,Ruby On Rails,Trix,Actiontext,我遵循了GoRails教程,在ActionText中使用@References。我想自动向提到的任何@用户发送电子邮件,提醒他们对话。我认为这在Rails中是微不足道的,但找不到任何关于如何做到这一点的文档 有人知道这将如何实现吗 GoRails:根据您的描述,我相信您希望有一个全面的 将执行以下操作的功能: 在文本区域中检测@+用户名(-您需要文本区域 键盘输入事件侦听器和特殊字符模式条件 识别@+用户名) 列出与您的@+用户名相关的所有用户模糊搜索(-您需要创建一个支持 按用户名搜索,并允许
GoRails:根据您的描述,我相信您希望有一个全面的 将执行以下操作的功能:
@+用户名(-您需要文本区域
键盘输入事件侦听器和特殊字符模式条件
识别@+用户名
)
@+用户名相关的所有用户
模糊搜索(-您需要创建一个支持
按用户名搜索,并允许F/E随时请求此API
使用@+用户名在文本区域中键入
@提及
下拉列表中选择用户(-a纯F/E行为,只需另一个事件侦听器即可检测用户
选择并将所选用户名注入该文本区域@提及
用户(-此处需要B/E功能。您的服务器将具有此功能
评论后的对话数据,服务器需要检查
对话包含任何@提及
部分,如果有,则
找到与该@提及相关的用户,并向该用户发送电子邮件
通过直接使用Mailer或间接使用mail Worker。)
Trix edior
中使用ActionText
,您也需要
至少有能力
如果我的评论有任何部分不清楚,请告诉我您是否需要更多详细信息。根据您的描述,我相信您希望有一个全面的 将执行以下操作的功能:
@+用户名(-您需要文本区域
键盘输入事件侦听器和特殊字符模式条件
识别@+用户名
)
@+用户名相关的所有用户
模糊搜索(-您需要创建一个支持
按用户名搜索,并允许F/E随时请求此API
使用@+用户名在文本区域中键入
@提及
下拉列表中选择用户(-a纯F/E行为,只需另一个事件侦听器即可检测用户
选择并将所选用户名注入该文本区域@提及
用户(-此处需要B/E功能。您的服务器将具有此功能
评论后的对话数据,服务器需要检查
对话包含任何@提及
部分,如果有,则
找到与该@提及相关的用户,并向该用户发送电子邮件
通过直接使用Mailer或间接使用mail Worker。)
Trix edior
中使用ActionText
,您也需要
至少有能力
如果我的评论中有任何部分不清楚,请告诉我您是否需要更多详细信息。我不是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