Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Виртуальные метод и валидация 
:(
    Опции темы
DimanLin
Дата 31.3.2009, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.2.2008

Репутация: нет
Всего: нет



1. Есть диллер(пользователь):
====================================
class Diller < ActiveRecord::Base

  has_many :personalaccaunts
  has_many :users

  validates_presence_of :login
  validates_uniqueness_of :login
  validates_length_of :login, :in => 4..60

  validates_presence_of :password
  validates_length_of :password, :in => 4..60
  validates_confirmation_of :password

  validates_presence_of :email
 

def password !!
    @password
  end

  def password=(pwd)
    @password = pwd
    create_new_salt
    self.hashed_password = Diller.encrypted_password(self.password, self.salt)
  end

и.т.д===============================

Проблема состоить в исправление атрибутов пользователя. Например, смены email.

diller = Diller.update(1, :email => "[email protected]")

=> #<Diller id: 1, login: "diller1", hashed_password: "1302e56c4b7b6e636e2da53775ad11bc6f32251b", salt: "698922600500600.530292611909184", email: "[email protected]", domainname: "www.ya.ru", perentage: 10, diller_code: "8a7sd8a7s", bonus_sum: 100, created_at: "2009-03-30 11:06:20", updated_at: "2009-03-31 10:48:49">

diller.errors

=> #<ActiveRecord::Errors:0x7fb5863ac670 @base=#<Diller id: 1, login: "diller1", hashed_password: "1302e56c4b7b6e636e2da53775ad11bc6f32251b", salt: "698922600500600.530292611909184", email: "[email protected]", domainname: "www.ya.ru", perentage: 10, diller_code: "8a7sd8a7s", bonus_sum: 100, created_at: "2009-03-30 11:06:20", updated_at: "2009-03-31 10:48:49">, @errors={"password"=>["can't be blank", "is too short (minimum is 4 characters)"]}>

password, это виртуальный метод, который при регистрации пользователя, создаёт запись в поле salt и hashed_password.

Как быть? Просто Diller.update(1, :email => "[email protected]") не прокатывает. Поскольку валидация в моделе не проходит по password. Второй раз передовать пароль тоже не получится. Я его не знаю. Он закодирован.
PM MAIL   Вверх
source777
Дата 1.4.2009, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Хватит уже кросспостить!  smile  


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.