Добавить несколько столбцов модели A в один столбец модели B при создании, обновлении - PullRequest
0 голосов
/ 03 ноября 2010

Это вопрос Rails.Так как мой Думающий Сфинкс как-то не смог проиндексировать ассоциированную Модель А., я ищу временное решение.

Модель A: -п столбцы: имя, город

Модель B: -has_manyA - есть столбец: страна - Я хочу добавить столбец с именем «tag» в модели B

Допустим, у нас есть:

B1 - Соединенные Штаты Америки (: страна) и имеет A1и A2 A1 - Walmart (: имя), Нью-Йорк (: город) A2 - Starbucks (: имя), Сан-Франциско (: город)

Каждый раз, когда пользователь создает / обновляет список B1, A.name иA.city: - каждый сопоставленный A, добавленный в B.tag, присоединиться (',') - затем сохранить

Так что в приведенном выше примере B1.tag будет иметь: walmart, new york, starbucks,Сан-Франциско

Итак, я могу поместить это в модель B:

class B < ActiveRecord::Base
  has_many :as      # plural for A's

# ThinkingSphinx Index
  define_index do
    indexes :country
    indexes :tag
  end

end

Я еще не добавил столбец Tag в свой B.

Как мне написатьэто в моем контроллере B, так что каждый раз, когда он создается / сохраняется, он автоматически сопоставляет каждый A, а затем соединяет (',') A.name и A.city в B.tag?

Рай, я только учусь рельсам.

Спасибо.

1 Ответ

0 голосов
/ 03 ноября 2010

Используйте наблюдателя (http://api.rubyonrails.org/classes/ActiveRecord/Observer.html), чтобы запустить код after_create для вашей модели A. Затем просто найдите новые значения и добавьте их в свою модель B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...