干003 连续撞车事件

先是在之前文章中的 template 撞车后
现在每次都是小心翼翼,先在irb里面测试下可否用,然后再确定是否使用。
谁叫我想到的变量名总是和rails内置的雷同。
这次遇到的家伙是 type ,测试了下,能读写。
大喜,用作model的属性。结果悲剧,无法保存model 冏。
后来一想不对,type 是class方法的前身,虽然不用,但还未被废弃。
如果就只是这样就没发泄的意思了。

在另一个model中我使用了继承,在它下面有N个子类。
第一点纳闷的是继承的子类使用的是同一个表,我原本打算只想继承父类的方法而已。
测试的时候更离谱,子类返回的类型居然是父类!这下怎么区分各种子类呢?
只能想了个办法,添加个表明类型的字段,然后添加方法:
      subclass.class_eval do
        # before_save :set_app_name
        # named_scope :self, :conditions => {:app_name  => name.sub('Apps::','')}
        # named_scope :o, :conditions => {:app_name  => name.sub('Apps::','')} 
      end


Rails 应该提供这么一个功能(可能我不知道)
:一个model不止能选择table_name ,还能通过属性选中特殊conditions的数据。

正当我松了口气,想找点 polymorphic 的资料瞅瞅。
意外的看到了model继承这个内容
意外的看到了字段 type
崩溃!!!
干!TNND 只要加个type就能自动识别子类了。

在这里,我想问,干嘛吧关键字设置的这么普通 ,干嘛许多问题连个warning都没有,干嘛报错后显示的错误地址都不正确,还得一层一层自己跳到函数里面找。。

还有一点教训是,Rails 小技巧太多了,你不能不按常理出牌,不过它可以。

你可能感兴趣的:(Ruby,Rails)