Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby On Rails > Миграция


Автор: DimanLin 8.2.2009, 17:36
Вот что у меня в миграции:

Diller.create(:login => "Diman", :first_name => "Diman", :last_name => "Hromov", :hashed_password => "99999s9s9s9s9s99s9s9s", :company => "www.yandex.ru", :email => "yandex@yandex.ru", :tel => "892012312123", :key => "kj23k45jh23k4j523klj45h3k45")

Подобная миграция работала, при стандартно сгенерированной моделе.
Как только я изменил модель, миграция перестала добавлять записи в таблицу... 

Вот как выглядит модель сейчас: 

Код

require 'digest/sha1'

class Diller < ActiveRecord::Base
  has_many :users

  validates_presence_of :email, :login, :password
  validates_uniqueness_of :login
  validates_confirmation_of :password

  def self.authenticate(login, password)
   diller = self.find_by_login(login)
   unless diller.nil?
     pas = diller.encrypted_password(password, diller.sale)
     if pas != diller.hashed_password
       diller = nil
     end
   end
   diller
 end

  def password
    @password
  end

  def password=(pwd)
    @password = pwd
    generated_sale
    self.hashed_password = encrypted_password(self.password, self.sale)
  end



def encrypted_password(password, sale)
  string_to_hashed = password + "lovemayjob" + sale
  Digest::SHA1.hexdigest(string_to_hashed)
end


def generated_sale
  self.sale = self.object_id.to_s + rand.to_s
end
end



Добавлено через 2 минуты и 43 секунды
Сори за флуд разобрался.

Вот как теперь должна выглядить миграция:

Diller.create(:login => "Diman", :first_name => "Diman", :last_name => "Hromov", :password => "99999s9s9s9s9s99s9s9s", :company => "www.yandex.ru", :email => "yandex@yandex.ru", :tel => "892012312123", :key => "kj23k45jh23k4j523klj45h3k45")

Автор: source777 9.2.2009, 16:57
Цитата(DimanLin @  8.2.2009,  17:36 Найти цитируемый пост)
Вот как теперь должна выглядить миграция:

Diller.create(:login => "Diman", :first_name => "Diman", :last_name => "Hromov", :password => "99999s9s9s9s9s99s9s9s", :company => "www.yandex.ru", :email => "yandex@yandex.ru", :tel => "892012312123", :key => "kj23k45jh23k4j523klj45h3k45") 

Огорчу тебя, но миграции так выглядеть не должны, они для декларации структуры БД существуют. А для загрузки данных в БД есть фикстуры и соответственно команда db:fixtures:load

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)