On 10 February 2012 20:57, Christopher Jones <[email protected]> wrote: > This is my user model: > > > class User < ActiveRecord::Base > has_one :profile > has_many :games > has_one :wishlist > > attr_accessor :password > before_save :encrypt_password > > validates_presence_of :username > validates_length_of :username, :within => 6..20, :message => "must > contain between 6 to 20 characters" > validates_uniqueness_of :username > validates_presence_of :email > validates_uniqueness_of :email > validates_format_of :email, :with => > /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :on => :create > validates_confirmation_of :password > validates_length_of :password, :within => 8..20, :message => "must > contain between 8 to 20 characters" > validates_presence_of :password, :on => :create > validates_presence_of :password_confirmation > > before_create :assign_wishlist > > private > def assign_wishlist > self.wishlist = Wishlist.create > end > > def encrypt_password > if password.present? > self.password_salt = BCrypt::Engine.generate_salt > self.password_hash = BCrypt::Engine.hash_secret(password, > password_salt) > end > end > > def self.authenticate(email, password) > user = find_by_email(email) > if user && user.password_hash == > BCrypt::Engine.hash_secret(password, user.password_salt) > user > else > nil > end > end > end > > > and the following is my wishlist model: > > class Wishlist < ActiveRecord::Base > belongs_to :user > validates_presence_of :number_1 > validates_presence_of :number_2 > validates_presence_of :number_3 > validates_presence_of :number_4 > validates_presence_of :number_5
I have come into this late so apologies if already discussed or not relevant but any time one sees a model like this it sets alarm bells going. Generally something like this is better dealt with by user has_many wishes with one wish per record. Or maybe using something like awsome_nested_set to get the ordering. Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

