次の JavaScript は、[View Conversation] をクリックすると非表示のビュー コードを表示します。「会話を表示」をクリックして会話が表示されたら、会話の最後のメッセージの状態を「未読」から「既読」に更新したいと考えています。ただし、クリック時にトリガーするようにこの Ruby コードを埋め込むのに問題があります。テストとして、「View Conversation」をクリックするとポップアップする 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;
});