Предположим у меня есть модель пользователяRails Завещание - Как добавить данные current_user
user.rb
class User < ActiveRecord::Base
...
end
с атрибутами, такими как: имя, имя пользователя, доступ
доступа перечисление, которое сообщает мне, является ли пользователь «персоналом» или «заказчиком»
Чтобы получить имя и имя пользователя вошедшего в систему пользователя, я могу сделать:
current_user.name
current_user.username
И предположим, у меня есть модель сотрудников
staff.rb
class Staff < ActiveRecord::Base
belongs_to :user
end
с атрибутами, такими как: заработная плата, phone_number
И у меня также есть модель клиента
cus tomer.rb
class Customer < ActiveRecord::Base
belongs_to :user
end
с атрибутами, такими как: адрес, phone_number
Я хочу, чтобы быть в состоянии назвать это на контроллер моего персонала:
current_user.staff.salary
И это на мой клиента контроллер:
current_user.customer.address
ЧТО Я ПРОБОВАЛИ ПОКА
Я переписал sessions_controller.rb
def create
super
model_name = current_user.access.capitalize.constantize
spec = model_name.where(user_id: current_user.id).take
session[:spec] = spec
end
Так я могу получить к нему доступ с помощью сессии [: спецификации], но не через CURRENT_USER. Есть идеи?
Вы показали мне, как я могу получить доступ к current_customer.address. Я еще не пробовал. Есть ли способ доступа, например current_user.customer.address? – Aleksandrus
До тех пор, пока вы добавляете операторы 'has_one',' current_user.customer.address' также должен работать –
Это сработало! Спасибо! Мне интересно, почему вы сделали это предложение. Может быть, вы говорите о случае, когда мнения разделяются? – Aleksandrus