Search Results

Search found 2 results on 1 pages for 'lambdabutz'.

Page 1/1 | 1 

  • Passing single attributes to associated factories

    - by lambdabutz
    I'm looking for a way to pass fields into the factories of associated models without having to explicitly call the factory itself. For example, lets say I have some factories like so: Factory.define :person do |person| person.name "Default Bob" person.sex "M" person.house {|p| p.association(:house)} end Factory.define :house do |house| house.color "Red" house.has_ac true house.suburb {|h| h.association(:suburb)} end Factory.define :suburb do |suburb| suburb.name "Little boxes" end This is fine and all, but if I want to use factories to create someone in a specific house in a specific suburb I have do this: sub = Factory(:suburb, :name => "Blue town") house = Factory(:house, :color => "Blue", :suburb => sub) person = Factory(:person, :name => "Bill", :house => house) While this isn't bad in this small case, my actual models sometimes have 7 or 8 associations, and when I want to create an object whose associations I only care about a single attribute, the code for this starts to get really heavy. Is there somewhat I can pass attributes to nested Factories without having to recall the Factory itself?

    Read the article

  • Is it possible to group validation?

    - by lambdabutz
    I am using a lot of my own validation methods to compare the data from one association to the other. I've noticed that I'm constantly checking that my associations aren't nil before trying to call anything on them, but I am also validating their presence, and so I feel that my nil checks are redundant. Here's an example: class House < ActiveRecord::Base has_one :enterance, :class => Door has_one :exit, :class => Door validates_presence_of :enterance, :exit validate :not_a_fire_hazard def not_a_fire_hazard if enterance && exit && enterance.location != exit.location errors.add_to_base('If there is a fire you will most likely die') return false end end end I feel like I am repeating myself by checking the existence of enterance and exit within my own validation. Is there a more "The Rails Way" to do this?

    Read the article

1