Управляйте созданием профиля в спокойной обстановке - PullRequest
0 голосов
/ 20 марта 2012

Я думал о том, как лучше создать функцию создания профиля, RESTwise.

Идея состоит в том, что мое меню всегда содержит ссылку на профиль пользователя, независимо от того, сгенерирован он или нет.Тем не менее, профиль должен быть создан пользователем в первый раз, и он будет показан ему.

Для иллюстрации, может быть пункт меню, указывающий на «/ profile / new» и динамически изменяющийсяв «profile /: id», когда пользователь впервые создает профиль.Это кажется естественным, но мне не нравится, что мне нужно получить переменную экземпляра @profile в контроллере приложений (поскольку она должна проверяться каждый раз, чтобы динамически генерировать ссылку).

Другая идеядолжно иметь место перенаправление, вероятно, лучшее из двух.Пользователь нажимает на / profile / новый путь (или псевдоним) и перенаправляется на «profile /: id», если у него уже есть профиль.

Как вы думаете, что является лучшим способомсделать это, и есть ли другая альтернатива, о которой я не думал?

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Перенаправление не имеет для меня смысла, RESTwise, так как оно вводит неоднозначный ресурс на /profile/new, но я не думаю, что вам обязательно нужно получать @profile каждый раз.Предполагая, что user_signed_in? является помощником, который подтвердит, что пользователь (current_user) фактически вошел в систему, вы можете создать помощника ссылки в каталоге помощника приложения, который будет выглядеть примерно так:

def link_to_user_profile(html = {})

  if user_signed_in?
    @profile = current_user.profile
    link = profile_path(@profile)
    text = 'Your Profile'
  else
    link = new_profile_path
    text = 'Create a Profile'
  end

  link_to text, link, html
end

Я составляю переменные повсюду, но, надеюсь, это поможет!

0 голосов
/ 20 марта 2012

Можно также подумать о создании нового профиля after_create пользователя со значениями по умолчанию.В этом случае у пользователя всегда будет профиль по умолчанию.

...