9、仿推特微博应用开发详解

仿推特微博应用开发详解

1. 提及功能处理

在创建状态时,会创建一个提及(Mention)将用户与该状态关联起来。在 before 过滤器开始时,会创建一个 @mention 实例变量数组,将所有创建的提及对象放入该数组。这里调用 Mention 的构造函数而非 DataMapper create 方法,只是创建了 Mention 的 Ruby 对象,并非实际的数据库记录,且只向构造函数传递用户对象,不传递状态。这是因为此时 Status 对象尚未创建,若此时保存 Mention 对象,其与 Status 对象的关联会为 nil ,无法正确保存到数据库。

为解决此问题,将处理过程中创建的 Mention 对象存储在 @mentions 实例变量中,然后通过 after 过滤器处理。 after 过滤器会在 Status 成功保存后执行,此时可安全地创建 Mention 与用户的关联。代码如下:

after :save do
    unless @mentions.nil?
      @mentions.each {|m|
        m.s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值