Руби на рельсах, разрабатываю и использую пользователя для ограничения существующей модели - PullRequest
0 голосов
/ 01 марта 2012

Я очень плохо знаком с Ruby (2-3 дня) и использую его на существующей БД.У меня есть пользовательская таблица (ранее созданная в Joomla), и мне удалось заставить ее работать (ну, вход и выход), но мне нужно ограничить другую модель, т.е. «Ведет», для пользователя, который вошел в систему.

Мне удалось получить ВСЕ текущие выходные данные «потенциальных клиентов» и использовать операции CRUD, но я хотел бы знать, как ограничить данные, основанные на пользователе, который вошел в систему.

«Ведущие»Модель была сгенерирована с использованием скаффолдинга, а атрибуты 'set_table_name' и 'set_primary_key' были переопределены.Я также добавил

belongs_to :user, :class_name => "user", :foreign_key => "leadid"

к модели.

Модель «пользователя» выглядит следующим образом

class User < ActiveRecord::Base
 # Include default devise modules. Others available are:
 # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and      :omniauthable
`establish_connection :web_development
 set_table_name "users"
 set_primary_key "id"

 has_many :leads,
       :class_name => "Lead",
       :foreign_key => "LeadID"

devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :validatable

 # Setup accessible (or protected) attributes for your model
 attr_accessible :email, :password, :password_confirmation, :remember_me

   alias :devise_valid_password? :valid_password?
   def valid_password?(password)
     return true (temp to bypass the password)
   end 
 end

Большое спасибо, Руди

Ответы [ 2 ]

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

Devise предоставляет средство доступа для текущего вошедшего в систему пользователя с помощью current_user.Поскольку, похоже, у вас правильно настроены отношения, если вы хотите, чтобы в вашем индексном действии контроллера отображались только выводы для вошедшего в систему пользователя, вам просто нужно:

def index
    @leads = current_user.leads
end
0 голосов
/ 01 марта 2012

Вы можете добавить эту строку в ваш ведущий_контроллера

  before_filter :authenticate_user!

Это должно обеспечить надлежащую аутентификацию пользователя перед тем, как разрешить доступ к любому из действий в этом контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...