1

in controller

 class V1::ItemsController < ApplicationController

 def index

images = Image.all  
 render json: {status: 'SUCCESS', message:'Loaded images', 
data:images},status: :ok

items = Item.all
render json: {status: 'SUCCESS', message:'Loaded items', 
data:items},status: :ok

end

end

in model

item.rb
has_many :images, dependent: :destroy

image.rb
belongs_to :item

when i am going to render json data i am getting error like this

Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like "redirect_to(...) and return".

pls need help.........

1 Answer 1

1

You have defined ItemsController to provide both images & items which is not proper, so it will be more relevant if you do it using association but will need changes at view side.

It will be real good format if you pass your data in following format,

def index

  data = { images: Image.all.as_json, items: Item.all.as_json }
  render json: { status: 'SUCCESS', message: 'Loaded images & items', data: data, status: :ok }

end

update: For show action, you can pass it as,

data = { image: @image.attributes, item: @item.attributes }

@image & @item are objects here

Sign up to request clarification or add additional context in comments.

2 Comments

ray that ans work perfect. pls Don't mind if i json data render in show page of same two model.how can i do? pls need help ray
@AdarshKL Are you passing single object data to show page for both 1 image and 1 item ?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.