0 0

ruby的印射15

都知道像这样
class Category < ActiveRecord::Base
has_many :items,
      :class_name => "Item",
      :exclusively_dependent => true,      
      :finder_sql => "select i.* from categories c, items i " +
   "where i.category_id = c.id ",
      :counter_sql => "select count(*) from items"

has_one :most_recent_item,
    :class_name => "Item",
   rder => "id DESC"
end


但是我如果加已改进。如“

:finder_sql => "select i.*,
(select count(*) from clicknums where modelid=i.id) cnum from categories c, items i " +
   "where i.category_id = c.id "

那么这个cnum  我应该在怎么接到这个值呢。。。

如果关联到多个表。。又应该怎么查询  取值呢。。。不解。。
问题补充:
这个问题倒是解决了。直接@obj.cnum就可以了。那既然可以这样输出来。。有要以对象的方式进行关联做什么呢。

我不懂ruby是如何做的处理 在输出关联的对象时 是不是查了两次。如果是这样我还不如直接使用 find_by_sql 自己写关联。那不是来得更快些么。而且我相信效率也绝对不会比使用对象的差
2008年5月31日 09:08
目前还没有答案

相关推荐

Global site tag (gtag.js) - Google Analytics