Ida*_*rye 7 ruby activerecord ruby-on-rails associations
我有两个ActiveRecord模型:
class Foo < ActiveRecord::Base
has_many :bars,:dependent=>:destroy
end
class Bar < ActiveRecord::Base
belongs_to :foo
end
Run Code Online (Sandbox Code Playgroud)
我的设计要求Bar
需要与数据库依赖关联Foo
,但Foo
仅与Bar
数据库依赖关联- 以确保Foo
删除实例时,所有关联的实例Bar
也将被删除.除此之外,使用的代码Foo
不应该知道Bar
,我不希望可以从Foo
对象访问关联方法.
我已经尝试在声明private
之前has_many
声明Foo
,但它不起作用(我猜它只适用于直接用def
... 声明的方法).
有没有办法使关联私有,或实现数据库依赖而不创建Bar
关联Foo
?
And*_*all 13
您必须在调用后放置private
声明,因为直到那时才定义关联的方法:has_many
class Foo < ActiveRecord::Base
has_many :bars, :dependent => :destroy
private :bars, :bars=
end
Foo.first.bars
#=> #<NoMethodError: private method `registrations' called for #<Foo:0x007fc767adca88>>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1225 次 |
最近记录: |