当单击“查看对话”时,以下 javascript 会显示隐藏的视图代码。当单击“查看对话”并显示对话时,我想将对话中最后一条消息的状态从“未读”更新为“已读”。不过,我无法嵌入此 Ruby 代码以在点击时触发。作为测试,我能够在单击“查看对话”时弹出一个 javascript 警报,所以我相信这是插入我的代码以更新最后一条消息状态的正确位置。但是,我得到的结果与我在测试警报消息中看到的不一致。将不胜感激任何输入!谢谢。
$('#inbox .btn-view-conversation').toggle(function(){
$(this).text('Hide Conversation');
$(this).parents('.row-message').find('.message-conversation').slideDown();
// alert('message!') triggers on click correctly
$(this).click(alert('message!'));
// the code below sometimes triggers when the page loads (before click),
// but sometimes not at all.
$(this).click('<% Message.last.update_attributes(:state => 'read') %>')
return false;
}, function(){
$(this).text('View Conversation');
$(this).parents('.row-message').find('.message-conversation').slideUp();
return false;
});