Skip to content

hasOne ignores mapsTo #638

Closed
Closed

Description

@ierceg

I have a model defined with mapsTo for each property (table is snake_case while model is camelCase). If I use hasOne to associate it to another model, the values of association fields are always null. I have tried the following alternatives:

  1. Defining association field name as it appears in the model. This leads to an exception due to ORM trying to insert a row with camelCase field.
  2. Doing help in development #1 but also changing the code in Utilities.js from:
    new_obj[obj].mapsTo = obj;

to

    new_obj[obj].mapsTo = new_obj[obj].mapsTo || obj;

This 2nd approach works in my tests but it broke other unit tests.

Before I continue I would like to know if I'm on the right track here. Are associations defined per model property name (camelCase in my case) or per table column name (snake_case in my case)?

Activity

  1. dxg commented on May 12, 2015

    @dxg
    Collaborator

    Not sure I understand the question, but maybe neither?
    I don't think I ever tested mapsTo with associations. The functions in utilities.js are really confusing to work with.

  2. dxg commented on May 12, 2015

    @dxg
    Collaborator

    I've made some changes to master. They won't necessarily fix your problem, but they include tests.

    Can you please run your code against master, and either add a failing test case, give me a code sample, or tell me how to make it fail?

  3. ierceg commented on May 12, 2015

    @ierceg
    Author

    @dxg Seems to be fixed - I tried two different tests and both passed. Thanks for this!

  4. ierceg commented on May 12, 2015

    @ierceg
    Author

    @dxg I misspoke - one test is still failing, I just didn't have it correctly configured. I'll add the failing test case.

  5. ierceg commented on May 13, 2015

    @ierceg
    Author

    @dxg I rechecked, again, and it works alright. It's the mapped name that has to be specified in the hasOne (I had column name and then it reverts to the behavior of using NULL for the value of the relationship field)

  6. ierceg commented on May 13, 2015

    @ierceg
    Author

    @dxg When do you expect to bump the package version?

  7. dxg commented on May 14, 2015

    @dxg
    Collaborator

    Just published 2.1.25

  8. ierceg commented on May 14, 2015

    @ierceg
    Author

    @dxg Thanks!

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions