- Notifications
You must be signed in to change notification settings - Fork 81
Closed
Labels
Description
Hi !!
I have one to one relation between model such as
class Plan < ActiveRecord::Base has_one :subscription end class Subscription < ActiveRecord::Base belongs_to :plan end So that I could define resources like,
class PlanResource < JSONAPI::Resource immutable attributes :uuid, :amount, :name, :created_at, :updated_at has_one :subscription, class_name: 'Subscription' end class SubscriptionResource < JSONAPI::Resource immutable attributes :stripe_subscription_id, :created_at, :updated_at has_one :plan, class_name: 'Plan', foreign_key: 'plan_id' end And then when I send the request to
http://localhost:3000/plans/1/relationships/subscription.
I can see the errors below;
{ "errors": [ { "title": "Internal Server Error", "detail": "Internal Server Error", "id": null, "href": null, "code": 500, "source": null, "links": null, "status": "500", "meta": { "exception": "undefined method `subscription_id' for class `#<Class:0x007ff5e0e4ffb0>'", "backtrace": [ "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/resource.rb:804:in `method'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/resource.rb:804:in `block (2 levels) in _add_relationship'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/resource_serializer.rb:300:in `public_send'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/resource_serializer.rb:300:in `foreign_key_value'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/resource_serializer.rb:249:in `to_one_linkage'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/resource_serializer.rb:61:in `serialize_to_links_hash'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/response_document.rb:113:in `results_to_hash'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/response_document.rb:11:in `contents'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/acts_as_resource_controller.rb:155:in `render_results'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/acts_as_resource_controller.rb:64:in `process_request'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/jsonapi-resources-0.7.0/lib/jsonapi/acts_as_resource_controller.rb:21:in `show_relationship'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.5.1/lib/action_controller/metal/implicit_render.rb:4:in `send_action'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.5.1/lib/abstract_controller/base.rb:198:in `process_action'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.5.1/lib/action_controller/metal/rendering.rb:10:in `process_action'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.5.1/lib/abstract_controller/callbacks.rb:20:in `block in process_action'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:117:in `call'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:92:in `__run_callbacks__'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:81:in `run_callbacks'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.5.1/lib/abstract_controller/callbacks.rb:19:in `process_action'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.5.1/lib/action_controller/metal/rescue.rb:29:in `process_action'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.5.1/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/notifications.rb:164:in `block in instrument'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/notifications.rb:164:in `instrument'", "/Users/toshikiinami/Desktop/billing/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.5.1/lib/action_controller/metal/instrumentation.rb:30:in `process_action'", When I used to use JR the result is following:
{ "links": { "self": "http://localhost:3000/plans/1/relationships/subscription", "related": "http://localhost:3000/plans/1/subscription" }, "data": null } Maybe the controller is not generated automatically? or I've been missing something?
**I removed api/v1 in the path for the sake of clarity within the code above. **
