Hello,

I'm pretty new to Rails - very impressed not only by how much faster I can
create working programs but also by how it helps me to think more clearly
about design.

What has me confused is why does the fixture loading process bypass model
validation? There must be a good reason for this, but I've been digging
around for hours and can't find any explanation.

Thanks!

Chris

--
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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Search Discussions

  • Colin Law at Dec 19, 2011 at 10:56 am

    On 19 December 2011 02:47, Chris Downey wrote:
    Hello,

    I'm pretty new to Rails - very impressed not only by how much faster I can
    create working programs but also by how it helps me to think more clearly
    about design.

    What has me confused is why does the fixture loading process bypass model
    validation?  There must be a good reason for this, but I've been digging
    around for hours and can't find any explanation.
    The purpose of fixtures is for testing, if you decide that you want
    something in the database for testing then that is up to you, even if
    it might seem that there should be no way of getting that data under
    normal operation. Remember that one might wish to test against legacy
    data in a database that was added before some validation was added.
    Also there may be routes other than rails for getting data there,
    bypassing the validations.

    Why do you care that fixtures bypass validations?

    As a side note fixtures are generally considered to not be the best
    way of testing. Most now use Factories I believe.

    I advise newcomers to ignore fixtures and go straight to Factories.

    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 rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
  • Chris Downey at Dec 19, 2011 at 5:16 pm
    Hi Colin,

    Thanks for the response. Good point about legacy data. In fact, I'm
    working on a legacy system that I'd like to start integrating Rails into.
    Would you happen to know of resources that focus on that?

    Why do I care that fixtures bypass validations? I've been using Agile Web
    Development with Rails 4th Ed. to learn Rails. On page 83 it says "a test
    fixture is simply a specification of the initial contents of a model (or
    models) under test." I was assuming that to the degree that statement is
    accurate, the validations coded in the model would be run against the data
    loaded by the fixtures. Then, when I saw that wasn't happening, I was
    surprised to find no statements about running or not running validations.
    For example,see http://guides.rubyonrails.org/testing.html

    Everything you pointed out ("the purpose of fixtures....") makes sense.
    But I can also see that it would be useful to have a rake parm that lets
    the developer control whether or not validations are run on the fixtures.
    From what I've been reading, and one of the reasons I'm finding Rails so
    appealing, is that (as DHH said) Rails is an opinionated framework and has
    a clear and strong stance on how to build good software. With that in
    mind, I was hoping to learn the reasons behind why fixtures work the way
    they do.

    Thanks again for your response.

    Chris



    On Mon, Dec 19, 2011 at 5:55 AM, Colin Law wrote:
    On 19 December 2011 02:47, Chris Downey wrote:
    Hello,

    I'm pretty new to Rails - very impressed not only by how much faster I can
    create working programs but also by how it helps me to think more clearly
    about design.

    What has me confused is why does the fixture loading process bypass model
    validation? There must be a good reason for this, but I've been digging
    around for hours and can't find any explanation.
    The purpose of fixtures is for testing, if you decide that you want
    something in the database for testing then that is up to you, even if
    it might seem that there should be no way of getting that data under
    normal operation. Remember that one might wish to test against legacy
    data in a database that was added before some validation was added.
    Also there may be routes other than rails for getting data there,
    bypassing the validations.

    Why do you care that fixtures bypass validations?

    As a side note fixtures are generally considered to not be the best
    way of testing. Most now use Factories I believe.

    I advise newcomers to ignore fixtures and go straight to Factories.

    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 rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to
    rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit this group at
    http://groups.google.com/group/rubyonrails-talk?hl=en.
    --
    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 rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedDec 19, '11 at 10:46a
activeDec 19, '11 at 5:16p
posts3
users2
websiterubyonrails.org
irc#RubyOnRails

2 users in discussion

Chris Downey: 2 posts Colin Law: 1 post

People

Translate

site design / logo © 2021 Grokbase