Rails:从外部模型创建关系

时间:2011-08-30 23:18:43

标签: ruby-on-rails relationships

我对此进行了搜索,并且任何类型的“Rails关系”都会查询很多选项,但我找不到我的案例..

请您建议实施这种关系的最佳方式。

家长可以为 Kid 创建连接

我目前有三种模式 - Kid 连接(用于存储有关 Kid 的数据连接)..

父:

has_many :kids

儿童:

belongs_to :parent
has_many :connections, :foreign_key => "connector_id"
has_many :connected_to, :through => :connections, :source => :connected

连接:

attr_accessible :connected_id
belongs_to :connector, :class_name => "Kid"
belongs_to :connected, :class_name => "Kid"

家长能够创建孩子 ..我正在努力学习家长来创建 Connections 的最佳方法em> *为他的孩子 ..

任何建议都非常感谢..

更新

在查看cug的建议后,我有以下内容:

中的

:     has_many:kids

def add_kid_connection(new_kid)
 kids.each do |kid|
   star.linked_by << new_kid
 end

查看_connect_kid.html.erb帮助方法:

<%= form_for current_parent.add_kid_connection(@new_kid) do |f|%>
<div class="field">
<%= f.label "Connect it!" %><br />
<%= f.text_field :new_id %>
<div class="actions"> <%= f.submit %>
</div>
<% end %> 
* kids_controller *

中的

def show
 @kid = Kid.find(params[:id])      
 @new_kid = Kid.find(params[:new_id])

最后,我得到了找不到没有ID的孩子错误的new_kid行..

显然这是基本的东西,但仍然试图找出......

谢谢!

1 个答案:

答案 0 :(得分:0)

例如,您可以添加以下方法,将一些Kid添加到某些父级的所有孩子的连接

class Parent
  def add_kid_connection(new_kid)
    kids.each do |kid|
      kid.connected_to << new_kid
    end
  end
end