我有一个应用程序,用户可以通过电子邮件,短信和whatsapp通过点击按钮向他人发送唯一链接(明信片邀请其他人)。
该应用程序在卡片显示方法中有一个按钮,上面写着“通过电子邮件将卡片发送给朋友”,当人们点击它时,他们的电子邮件应用程序就会打开,他们可以发送链接:
<a href="mailto:?subject=Postcard for you!&body=You received a nice postcard! Check it out here: <%= u @sending_url %>">
<button class="btn btn-large btn-default">Send card to a friend via email</button>
</a>
链接/网址@sending_url
由辅助方法创建,由网址和两个参数组成: inviter_id (这是当前用户的ID)和通过SecureRandom.uuid
生成的令牌(@token)。我的应用生成的链接如下所示:
https://chaos-jadz.c9users.io/cards/3?inviter_id=1&token=b39f0488-de54-431e-a261-4da2feae6012
我现在要做的是:一旦用户点击此按钮,应用程序不仅应该打开电子邮件应用程序,还应该将令牌存储在数据库中。因此我有:
token.rb
class Token < ActiveRecord::Base
end
schema.rb
create_table "tokens", force: :cascade do |t|
t.string "token"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
我现在的问题是: 如何在卡片的show.html.erb中实现一个按钮,该按钮一旦点击就会在数据库中保存令牌(在我的卡片展示方法中生成),同时打开用户电子邮件应用程序?
答案 0 :(得分:1)
如何使用inviter_id
创建指向您服务器的链接(例如 - &gt; /users/1/invites
),然后在invites_controller
中,您会将用户重定向到带有令牌的电子邮件应用链接存储在数据库中。