как написать код для входа не удалось более 5 раз, ruby ​​на рельсах - PullRequest
0 голосов
/ 03 января 2012

У меня уже есть таблица crm_member_list, и я также могу успешно войти в систему, теперь я хочу добавить в таблицу crm_member_list столбец с именем «failed_times» для записи неудачных моментов. Когда не удалось более 5 раз. *

Я определяю метод add_failed_times в модели crm_member_list.

  def self.add_failed_times(mbr_id)
     member = find_by_mbr_id(mbr_id)    
     failed_times = member.failed_times.to_i+1          
  end

в контроллере сеанса,

  def create      
    member = CrmMemberList.authenticate(params[:session][:mbr_id],params[:session][:password])    
    if member.nil? 
      user= CrmMemberList.find_by_mbr_id(params[:session][:mbr_id])
      if user.nil?
        flash.now[:error] = "Invalid passport/password combination."
        @title = "User nil"
        render 'new'
      else
        times = CrmMemberList.add_failed_times(params[:session][:mbr_id])
        if times.to_i=1 
          user.failed_times=times  
          user.save    
          flash.now[:error] = "Invalid passport/password combination."
          @title = "Less than 6"
          render 'new'        
        else
          @title ="Locked"
          render 'failed'  
        end   
      end             
    else
      sign_in member
      redirect_to member  
    end                             
  end 

Как я могу решить эту проблему? спасибо

сохранение ложно.

Ответы [ 2 ]

0 голосов
/ 03 января 2012

Я предполагаю, что сохранение ложно из-за некоторой ошибки проверки. Возможно, пароль и подтверждение пароля не совпадают. Вы можете позвонить

user.save(:validates => false)

, который обходит проверку.

Если вы не уверены, что это за ошибка, после того, как вы позвонили user.save, вы можете вывести

user.errors

Чтобы получить ошибки, которые мешают вашему сохранению.

0 голосов
/ 03 января 2012

А как насчет использования гема для автоматической обработки всей аутентификации (включая блокировку учетной записи ): https://github.com/binarylogic/authlogic?

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