在javascript“.click”方法中嵌入ruby

时间:2012-11-13 13:53:17

标签: javascript ruby-on-rails ruby

点击“查看对话”时,以下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;
  });

1 个答案:

答案 0 :(得分:1)

您需要使用Ajax从Javascript触发Ruby代码。你不能在Javascript中“嵌入”Ruby代码。 您需要了解客户端脚本和服务器端脚本之间的区别。

例如:http://answers.yahoo.com/question/index?qid=20080529114633AAHE4DE

在理解了这个概念后,解决方案应该是显而易见的。