当用户单击某个页面上的(下载)按钮时,我想存储他/她的电子邮件。
这是按钮本身的代码:
<div class="my_music_download_2" id="try">
<a class="fas fa-file-download fa-3x" href="<%= my_music.download %>" download></a>
<script>
document.getElementById("try").addEventListener("click", function(){
});
</script>
</div>
我现在不需要在函数中键入什么内容。
我使用了devise进行身份验证。
我的github页面:github.com/Maartensdb/steven-de-baecke/tree/fixes
答案 0 :(得分:0)
您可以在会话中存储用户的电子邮件地址,并在其他页面上接收它。
// Store
sessionStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = sessionStorage.getItem("lastname");
答案 1 :(得分:0)
假设您的链接位于类似以下的循环中:
<% MyMusic.each.do |my_music| %>
您可以设置视图:
<%= link_to download_path(my_music_id: my_music.id), remote: true do %>
Download
<% end %>
和控制器:
def download
@my_music = MyMusic.find(params[my_music_id])
@my_music.update_attributes(email: current_user.email)
send_data @my_music.download.read, filename: @my_music.download
end
但这将为每个my_music存储最后一次下载它的用户。如果您想存储谁下载了您需要创建的联接表(例如,users_downloads,具有user_id和my_music_id列),请设置适当的关联。