Comments (10)
Does you User
model has a company_id
attribute?
from her.
No it doesn't, it is just basic information, e.g.:
{
"id": 54,
"name": "Luca"
}
In my actual use case (as opposed to this example), the child can belong to multiple parents, so it doesn't make sense to have a single parent_id
attribute. Maybe a better example would be Groups which have Users, and Users can belong to multiple Groups.
from her.
Ah I see. Her is indeed calling the request path for each User
resource.
In your actual use case, what URL would be called if you call the #save
method on a user? PUT /users/:id
(because the URL can’t depend on the parent since a user can belong to many parents)? In that case, you’d have to use the resource_path
method:
class User
collection_path "/companies/:company_id/users"
resource_path "/users/:id"
end
from her.
Sorry for the delay, we've been busy busy recently...
Back to the issue, so the actual model in our case is read-only, so we don't need to worry about saving it. However if we did the the example you provided would be correct.
I think for now we'll just add some custom stuff to stop the #inspect
method from doing this, in our case it's pretty simple to know what the URL is, so I don't think we need it there.
from her.
I think we could just catch any exceptions when calling request_path
here.
class User
collection_path "/companies/:company_id/users"
end
user1 = User.find(1) # { "id": 1, "name": "Tobias Fünke", "company_id": 2 }
user1.inspect # => #<User(/companies/2/users/1) name="Tobias Fünke">
user2 = User.find(2) # { "id": 2, "name": "Maeby Fünke" }
user2.inspect # => #<User(<unknown path>) name="Maeby Fünke">
That makes sense, right?
from her.
That sounds good to me :)
from her.
This commit should fix it. If I take my previous example again:
class User
collection_path "/companies/:company_id/users"
end
user1 = User.find(1) # { "id": 1, "name": "Tobias Fünke", "company_id": 2 }
user1.inspect # => #<User(/companies/2/users/1) name="Tobias Fünke">
user2 = User.find(2) # { "id": 2, "name": "Maeby Fünke" }
user2.inspect # => #<User(<unknown path, missing `company_id`>) name="Maeby Fünke">
from her.
Great! It's been annoying for a long time ;)
@lucaspiller Can you verify and close the issue?
from her.
@lucaspiller You should not be experiencing the issue with newer versions of her
(0.6+). Please upgrade, test again and close this issue 😄 Thanks!
from her.
Works perfect, thanks!
from her.
Related Issues (20)
- after_find called twice HOT 1
- path_prefix option is not used when belongs_to association is set. HOT 5
- add ability to wrap "where" clause HOT 4
- Support for first, limit, group and order HOT 6
- Support for update_attributes missing? HOT 6
- Support for association extensions HOT 1
- undefined method `map' for nil:NilClass for association HOT 6
- Class-level response parsing? HOT 1
- Scopes on JsonApi model
- Find or Create by ID HOT 2
- Have we considered making this gem more SEO friendly? HOT 4
- Attributes don't play nicely with ActiveModel::Dirty in Rails 6
- Safe Navigation Operator &. don't works on nil objects
- I would like to have find_by! in order to raise an exception instead of a nil HOT 1
- HashWithIndifferentUsage is slow, and requires large ActiveSupport dependency
- ruby 2.7, rails 6.0 and faraday 1.0 HOT 3
- Release version 1.1.1 HOT 1
- her-rb.org website inaccessible. HOT 1
- Organizing a fork of her HOT 1
- Execute rescue_from plus her? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from her.