Rails 3.1 - привязка HABTM от другого контроллера - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть:

class Person < ActiveRecord::Base
  has_many :people_phones
  has_many :phones, :through => :people_phones
end

У меня также есть:

class Request < ActiveRecord::Base
  belongs_to :person
  belongs_to :phone
end

Теперь, когда кто-то звонит с запросом, я открываю форму "запросы # новый", заполняю person_id и phone_number идругие подробности и отправляет их в «запрос # создает» контроллер # действие.

В «запросах # создать», я могу сделать:

@phone = Phone.find_or_create_by_phone_number(params[:phone][:phone_number])

Но как я могу связать человека с этимТелефон от этого контроллера просит?

Я имею в виду создать запись в таблице people_phones (если она не существует)?

1 Ответ

1 голос
/ 07 декабря 2011
User.find(person_id).phones << @phone

Я действительно не знаю, как работает ваше приложение, но вы видите идею. Если у вас есть запрос, и вы хотите «проверить» его, вы должны сделать

request.person.phones << request.phone

Интересно знать, это как-то связано (я постараюсь найти, где я это нашел, это было давно)

Шаги, необходимые для сохранения объекта в базе данных:

New

Blog.new(…).save
user.blogs << Blog.new(…)
user.blogs.new(…).save – do not use, no practical use case

Сложение

Blog.build – not possible
user.blogs.build(…), user.save – both are required to save to DB

Создать

Blog.create(…)
user.blogs.create(…)
...