Рельсы с именем has_many с ограничением - PullRequest
0 голосов
/ 07 января 2011

Я хочу добиться связи has_many с числом записей топора, и записи будут названы.

Давайте объясним это лучше.В предыдущем вопросе я спросил, как создать текстовую область с выбираемым языком разметки, и мы пришли к выводу, что мне нужна отдельная модель, Field, в которой было несколько нужных мне полей (languageoriginal и rendered).

Теперь я хочу иметь возможность создать модель, скажем, User, которая имела бы два из этих полей.Например: about_me и biography.Как мне создавать эти поля каждый раз, когда я создаю пользователя, редактировать их при редактировании пользователя и уничтожать их при редактировании пользователя?И как бы я отобразил их, просто написав: User.about_me и User.biography?

Заранее спасибо за ответ.

Ответы [ 2 ]

1 голос
/ 07 января 2011

Решение Дэвида создает объединенную модель.

Затем вы должны включить форму профиля в форму пользователя. Вам придется использовать метод accepts_nested_attributes_for в модели User.

Чтобы уничтожить профиль при удалении пользователя, добавьте dependent => :destroy к отношениям между двумя моделями.

1 голос
/ 07 января 2011

Вам нужно будет использовать обратные вызовы (http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html).

Например, в вашей User модели есть обратный вызов after_create, который создаст необходимые поля.

Также есть обратный вызов after_saveчто проверяет user.changed? и если он отличается, обновите поля.

...