Blueprint for has_one associations #96

Open
ramontayag opened this Issue Aug 12, 2011 · 7 comments

5 participants

@ramontayag

I tried making a blueprint for a has one association (where User has_one Profile:

User.blueprint(:with_profile) do
  profile # I also tried profile(1)
end

Profile.blueprint do
  user
end

But they don't seem to work. I can't find any info regarding this either. Is this thing possible?

@chrismear

In Machinist 1, only belongs_to associations can be filled in like this; for has_one/has_many associations, you need write a manual helper. See the section 'Other Associations' in the README: https://github.com/notahat/machinist/blob/1.0-maintenance/README.markdown

I believe the plan is for Machinist 2 to support has_one/has_many associations using this syntax.

@ramontayag

Sorry - I forgot to mention that I am using machinist 2.

@Antipattern

Using 2.0.0.beta I have the same problem with belongs_to

using an explicit make! fixes the problem

So try:
Profile.blueprint do
user { User.make!}
end

@michaeleconomy

Antipattern's solution works for us, but when not when using make from an association:

Like:

i = recipe.ingredients.make!

i.recipe_id will != recipe.id

(rails 3.1.3, machinist 2)

@pat

To have makes via associations work, I usually write my blueprints like so:

Profile.blueprint do
  user { object.user || User.make! }
end
@michaeleconomy

I tried that freelancing god, and it didn't work!

What ruby version and rails version are you using?

@pat

Generally using MRI 1.9 and Rails 3.x - I've taken this approach in a few apps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment