Rails: создайте отношения из внешней модели - PullRequest
0 голосов
/ 31 августа 2011

Я выполнил поиск по этому поводу, и любой вид «отношений Rails» запрашивал множество вариантов, но я не смог найти свой вид дела.

Не могли бы вы предложить лучший способ реализовать это?вид отношений ..

Родитель может создать Соединение для своего Малыша .

У меня сейчас три модели - Родитель , Малыш и Соединение (для хранения данных о соединениях Малыш ) ..

Родитель:

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"

Родитель способен создавать Дети .. ЯЯ борюсь с лучшим способом научить Родителя создавать Связи * для его Детей ..

Любые предложения действительно приветствуются ..

ОБНОВЛЕНИЕ :

После изучения совета от cug у меня есть следующее:

in Parent : 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 %> 

in * kids_controller *:

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

В конце концов я получаю Не могунайти Kid без идентификатора ошибка для строки new_kid ..

Видимо, это что-то простое, но все еще пытается выяснить ...

Спасибо!

1 Ответ

0 голосов
/ 31 августа 2011

например, вы можете добавить следующий метод для добавления некоторого Ребенка ко всем Соединениям Детей какого-либо из родителей

class Parent
  def add_kid_connection(new_kid)
    kids.each do |kid|
      kid.connected_to << new_kid
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...