Как разработать несколько пользовательских форм и моделей - PullRequest
0 голосов
/ 10 сентября 2011

У меня есть веб-сайт, где люди могут искать меню из близлежащих ресторанов.

Как ресторан, вы можете зарегистрироваться и войти в свое меню.Как мне спроектировать модель (ы)?

class User < ActiveRecord::Base
  has_one :venue
class Venue < ActiveRecord::Base
  has_many :menus

или я должен хранить все (электронная почта, пароль и т. Д.) Внутри модели объекта?

Следующая проблема - регистрацияформа.С моделью User и Venue мне нужно создать несколько моделей через одну форму.Не думайте, что это так удобно для пользователя.

Последняя проблема: я также хочу иметь «нормального» пользователя, который может оценивать рестораны и тому подобное.Я думаю, что это будет мешать подходу Модель пользователя / объекта.

Что вы думаете?Как бы вы это сделали?

Заранее спасибо

1 Ответ

0 голосов
/ 11 сентября 2011

Похоже, вы как бы ответили на свой первый вопрос своим третьим - если вы хотите иметь возможность иметь Users, который не связан с Venues, вам нужно разделить эти две модели, или будет мешать вашему желанию иметь разных типов пользователей (по крайней мере, с возможностью делать это чисто). Если вы держите их отдельно, некоторые Users могут быть связаны с Venues (владельцы ресторанов), а некоторые нет (обычные пользователи). В вашем случае обычные пользователи будут иметь ноль venue.

Одно замечание - разница между has_one и belongs_to не всегда интуитивна (по крайней мере, не для меня), вы можете проверить руководство по ассоциациям активных записей Rails *1013*, чтобы убедиться, что вы ' использовать соответствующий.

Если существует множество функций, которые применяются только к владельцам ресторанов, вы можете унаследовать одну модель от другой, чтобы избежать загромождения базового класса (т. Е. Иметь модель User и модель Owner, которая наследует его, или что-то еще вот так).

Что касается формы регистрации, похоже, что вы хотите создать единую форму, которая позволяет владельцу ресторана вводить информацию, которая создаст их User, а также их Venue. Для этого вы можете использовать вложенные объектные формы - ссылка относится к Rails 2.3, но я использую эту функцию в проекте Rails 3, и все работает так, как объявлено.

...