我有以下哈希(@messages),这些哈希是发件人/来自:
的邮件{'Tom'=>[#<ShortMessage id: 16, content: "ABC", created_at: "2014-01-28 16:35:33", from: 'Tom'>, #<ShortMessage id: 15, content: "DEF", created_at: "2014-01-28 13:11:20", from: 'Tom'>], 'Jerry'=>[#<ShortMessage id: 5, content: "XYZ", created_at: "2014-01-22 09:48:52", from: 'Jerry'>]}
在我看来,我遍历哈希以打印出发件人名称及其邮件组。我还为每组消息提供了一个表单,用户可以在该表单中回复该特定发件人
<% @messages.each do |sender, message| %>
<p><%= sender %></p>
<% message.each do |msg| %>
<p><%= msg.content %></p>
<% end %>
// reply form
<%= form_for @message, remote: true do |f| %>
<%= f.hidden_field :from, value: from %>
<%= f.text_field :content %>
<%= f.submit "Reply" %>
<% end %>
<% end %>
我正在使用ajax和jquery提交表单并将新的回复文本添加到邮件组的末尾,以便每次发送回复时都不必刷新页面
如何在循环哈希时引用哪一组消息附加新回复?
示例如果我想回复Tom并填写他的回复表格我如何附加到该组消息而不是Jerry's?
我不成功的jquery看起来像这样:
<script>
$('#container').on('ajax:success', function(event, data){
if (data.succ) {
// handle your success somehow, like show a new field
} else {
// something went wrong
}
})
</script>
答案 0 :(得分:1)
我可能会将ajax:success
绑定到表单本身而不是#container
(这不在btw的问题中)。然后t就像
$(this).before(...)