新手问题 关联关系有这么强大吗?

zhangyanan · 2013年11月27日 · 最后由 ZombieCoder 回复于 2013年11月27日 · 2088 次阅读
class Menu < ActiveRecord::Base
  include BackupActiveRecord

  belongs_to :right
end

model 中定义了一个关联关系,这就意味着我可以通过 menu 找到所有的 rights,这个我知道,但是今天发现还可以这么用,

class Menu < ActiveRecord::Base

  def url
    right.url rescue ""
  end
end

这个是什么情况?association 还有那些厉害的功能,发现我知道的太少了,是不是定义了关系就意味着各自 model 中的属性对另一个 model 来说,是可见的了??

right.url similar to self.right.url self.right similar to Right.find(self.right_id)

虽然是新手,也请看看 belongs_to 的文档

看来你还不知道可以这么用:

class Menu < ActiveRecord::Base
   belongs_to :right
   delegate :url, to: :right, allow_nil: true    # menu.url will work
 end

Right#url 是个 public 方法

#3 楼 @Rei 听不懂!Right model 里面的所有属性都是它的方法吗?有相关文档吗?

#2 楼 @ZombieCoder 的确不知道,正在查询,有相关资料吗?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号