Я новый пользователь Ruby и искал форумы, и, несмотря на то, что были опубликованы похожие вопросы, я не смог полностью их описать. Отсюда мой вопрос.
У меня есть сайт, на котором есть 2 разных типа пользователей с разными и общими атрибутами (покупатели и магазины). Оба должны иметь возможность войти в систему, но будут иметь разные функциональные возможности и опции панели навигации по всему сайту. Они также поделятся некоторыми функциями. Например, оба должны иметь возможность поиска данных в магазинах. Однако только магазины смогут обновлять данные в них.
Первоначально я создал пользовательский класс с электронной почтой, encrypted_password, salt и т. Д. Я хотел использовать код регистрации / входа в систему. Но каждый тип пользователя будет дополнительно иметь функциональность.
Я думал, что у меня будет следующая база данных:
create_table :users do |t|
t.string :email
t.string :encrypted_password
t.string :salt
t.timestamps
end
create_table :shoppers do |t|
t.integer :dollars
t.string :promo_info
end
create_table :stores do |t|
t.string :address
t.string :city
t.string :zipcode
t.string :category_id
end
Тогда у меня был бы класс Shopper & Store, который наследовал бы от класса User, получая все функции входа / регистрации, определенные там. Или было бы более разумно просто иметь в каждом Магазине и Покупателе пользователя и делегировать ему любые вызовы аутентификации shopper.user.login ()
Правильно ли я думаю об этом?