Я собираюсь показать данные JSON, у меня есть две модели: 1) элемент, 2) изображение, для модели изображения - вложение peperclip gem.вместо «image_id»: 6, в данных json я хочу отобразить url изображения
в контроллере items_controller.rb
class V1::ItemsController < ApplicationController
skip_before_action :verify_authenticity_token
def index
items = Item.all
render json: { status: 'success', data: items, status: :ok}
end
def show
item = Item.find(params[:id])
render json: {status: 'success', data:item, status: :ok}
end
private def image_params
params.permit(:name,:price,:category_id,:image_id,:short_description,:long_description,:is_active,:preparation_time,:serves,:calorie_count,:meal_type_id,:cuisine_id,:spicy_level ,:is_new,:is_bestseller)
end
end
в images_controller.rb
class V1::ImagesController < ApplicationController
skip_before_action :verify_authenticity_token
def show
image = Image.find(params[:id])
render json: {status: 'success', data:image},status: :ok
end
def create
image = Image.new(image_params)
if image.save
render json: {status: 'success', data:image},status: :ok
else
render json: {status: 'error', message:'image not saved', data:image.errors},status: :unprocessable_entity
end
end
def destroy
image = Image.find(params[:id])
image.destory
render json: {status: 'success', data:image},status: :ok
end
private def image_params
params.permit(:item_image,:title,:filename)
end
end
модель
item.rb
class Item < ApplicationRecord
has_many :images, dependent: :destroy
end
image.rb
class Image < ApplicationRecord
has_attached_file :item_image, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png"
validates_attachment_content_type :item_image, content_type: /\Aimage\/.*\z/
belongs_to :item
end
теперь я получаю вывод json для элемента
{
"id": 1,
"name": "Bruschette with Tomato",
"price": 0,
"category_id": 10,
"image_id": 6,
"short_description": "ut error",
"long_description": "placeat sit quasi dolorum quia vel consequatur",
"is_active": true,
"preparation_time": "2018-12-25 19:30:09 +0530",
"serves": 1545640612,
"calorie_count": 465,
"meal_type_id": 4,
"cuisine_id": 5,
"spicy_level": 1,
"is_new": false,
"is_bestseller": false,
"updated_at": "2018-12-25T07:10:16.144Z",
"created_at": "2018-12-25T07:10:16.144Z"
}
.но вместо "image_id": 6, я хочу отобразить URL-адрес изображения, как я могу сделать, пожалуйста, нужна помощь ......