Tee*_*sej 6 ruby activerecord ruby-on-rails
大家.我有一个想法,使用Activerecord来实现一些奇怪的东西,如下例所示:
SystemInfo < ActiveRecord::Base
belongs_to :SystemInfo
end
Run Code Online (Sandbox Code Playgroud)
这个想法是,系统A可以包含系统B作为它的孩子.所以我将生成应用程序的骨架:
script/generate scaffold SystemInfo parent_id:integer name:string
Run Code Online (Sandbox Code Playgroud)
然后,当我插入系统A时,我将系统A的ID用作系统B的parent_id(系统A的parent_id将等于'nil'.当我使用如下命令:
sysA = SystemInfo.find_by_id(1) # Get System A
Run Code Online (Sandbox Code Playgroud)
我认为这可以得到系统A,它是孩子,系统B.类似于:
sysA.childrens # Get System B and other SystemInfo which has parent_id == 1 (System A's ID)
Run Code Online (Sandbox Code Playgroud)
你能为我提出实施这个想法的指导方针吗?我认为这是很常见的想法,我们应该可以这样做.;)
eri*_*rik 15
你有正确的想法.
class SystemInfo < ActiveRecord::Base
belongs_to :parent, :class_name => 'SystemInfo'
has_many :children, :class_name => 'SystemInfo', :foreign_key => 'parent_id'
end
s = SystemInfo.find(1)
s.children
# => [...]
s.parent
# => <SystemInfo>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3510 次 |
| 最近记录: |