RoR: разработка и профили - PullRequest
4 голосов
/ 13 июня 2011

Я законченный Rails noob и работаю над своим первым приложением rails.

Я бы хотел, чтобы у каждого пользователя был свой профиль, отдельный от таблицы users, но связанный по id,Я делал это правильно в PHP раньше, но синтаксис rails новый.: /

Как мне создать профиль для каждого пользователя, когда он регистрируется через devise?И как мне связать их users/edit страницу, чтобы вместо этого редактировать их профиль?

1 Ответ

7 голосов
/ 14 июня 2011

Вы должны прочитать этот урок о Отношения

Действительно легко объявить ассоциации в Rails. В вашем app/models/user.rb вы можете сделать что-то подобное:

has_one :user_profile

Ваш профиль пользователя - это другой объект со своей таблицей. Просто убедитесь, что у вас есть внешний ключ user_id , и все готово (также, вы должны указать belongs_to :user в модели профиля вашего пользователя).

Теперь, используя Devise, если вы хотите убедиться, что профиль создается после регистрации пользователя, вы можете сделать что-то подобное (все еще в модели вашего пользователя):

after_create :create_child
# Creating child Elements
def create_child
  UserProfile.create("user_id" => id)
end

И затем, если вы хотите «связать» определенный URL-адрес с контроллером, см. Руководство по маршрутизации

Надеюсь, это поможет.

...