【问题标题】:Rails: create relationships from external modelRails:从外部模型创建关系
【发布时间】:2011-08-31 15:06:16
【问题描述】:

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

您能否建议实现这种关系的最佳方式..

父母可以为他的孩子创建连接

我目前有三个模型 - ParentKidConnection(用于存储关于 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"

家长能够创建孩子。我正在努力寻找教家长创建连接的最佳方法em>* 为他的孩子们..

任何建议都非常感谢..

更新

查看 cug 的建议后,我有以下几点:

父级中: has_many :孩子们

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])

最后我得到 Couldn't find Kid without an ID 对于 new_kid 行的错误..

显然这是一些基本的东西,但仍在试图弄清楚......

谢谢!

【问题讨论】:

    标签: ruby-on-rails relationships


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!虽然我不确定如何实现这一点。我没有在 Parent 模型中声明孩子。因此这段代码会导致一些错误和/或模型结构的变化?
    • 您的父模型中有has_many :kids。此调用为模型添加了几个方法,其中一个是kids,它返回所有关联的 Kid 模型。您可以在ruby on rails guides 阅读有关关联的更多详细信息
    • 哦,谢谢,不知怎的,它开始起作用了.. 我真的觉得我越来越近了 - 你能看看更新(上图)吗?
    • 您的代码很奇怪,您以错误的方式使用了form_for 助手,并试图将表单与显示操作联系起来。我强烈建议您阅读 Rails 指南,因为您似乎在理解 Rails 基础知识方面遇到了一些麻烦。
    • 啊,我正在尝试根据需要调整 railstutorial,但看起来我转错了方向
    猜你喜欢
    • 2017-10-27
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2010-10-28
    相关资源
    最近更新 更多