2016-12-11 5 views
0

Я создаю простое приложение, в котором пользователь может заполнять и сохранять некоторые данные в базе данных MySQL.Devise: Невозможно решить область пользователей

Каждый раз, когда я сохраняю данные как user1, пользователь2 может видеть все user1 и другие пользователи могут видеть данные друг друга.

Модели настроены нормально, с has_many и belongs_to, а внешние ключи появляются на таблицах, но я действительно злюсь с этим.

Надежда кто-то может помочь мне

Благодарности

+0

Используйте разработать вспомогательный метод 'current_user' https://github.com/plataformatec/devise#controller-filters-and-helpers –

+0

Привет Педро, Я не понимаю проблему. вы хотите, чтобы пользователи могли видеть или не видеть эти данные. – MZaragoza

ответ

1

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

учетная запись имеет много пользователей, пользователь принадлежит к учетной записи

#model 
class Account < ActiveRecord::Base 
    has_many :users 
    ... 
end 

class User < ActiveRecord::Base 
    belongs_to :account 
    ... 
end 

теперь я обычный пользователь devise проверить мои пользователи

теперь в вашем application_controller вы можете сделать что-то вроде этого

#app/controllers/application_controller.rb 
before_filter :current_account 
def current_account 
    @current_account = current_user.account if current_user 
end 

Теперь все, что вам нужно сделать, - это объединить данные в счета, что он принадлежит к

def indedx 
    @users = @current_account.users # this will only return the users associated with that account 
end 

Я надеюсь, что это помогает

+1

Думаете, вы имели в виду '@users = current_account.users' – Swards

+0

в ** application_controller.rb ** его фактически' current_user.account', что мы пытаемся сделать устанавливается ** current_account ** – MZaragoza

+0

Поскольку вы создали метод current_account, я подозреваю, что вы хотите его использовать. – Swards

Смежные вопросы