解決したいこと
Railsを使ったAPIで、created_at
で表示されている部分をunixtime
に変換したい。
現在の状況
登録したデータを一覧で表示する際に、created_at
が次のようになっています。
{ "id": 1, "category": "開発", "body": "システムを開発する", "created_at": "2021-10-23T10:22:16.349Z" }
これをunixtime
へと変換して表示したいです。
自分で調べたこと
RubyではTime.parse(2021-10-23T10:22:16.349Z).to_i
のようにするとunixtime
へと変換できることが分かりました。
しかしRails上では、どこに、どのように記載すれば良いのか分かりません。
データを登録するcreateアクション内?
データを表示するindexアクション内?
レスポンスを整形するserializer内?
以下にcontollerとserializerのコードを添付致しますので、ご教授頂けると幸いです。
app/controllers/ideas_controller.rb
1class IdeasController < ApplicationController 2 before_action :set_category 3 4 def create 5 @category = Category.create(name: idea_params[:name]) if @category.blank? 6 idea = Idea.new(body: idea_params[:body], category_id: @category.id) 7 if idea.save 8 render json: { status: 201 } 9 else 10 render json: { status: 422 } 11 end 12 end 13 14 def index 15 if idea_params[:name].nil? 16 ideas = Idea.all 17 render json: ideas 18 elsif @category.nil? 19 render json: { status: 404 } 20 else 21 ideas = @category.ideas 22 render json: ideas 23 end 24 end 25 26 private 27 28 def idea_params 29 params.permit(:body, :name) 30 end 31 32 def set_category 33 @category = Category.find_by(name: idea_params[:name]) 34 end 35 end
idea_serializer.rb
1class IdeaSerializer < ActiveModel::Serializer 2 require 'time' 3 attributes :id, :category, :body, :created_at 4 belongs_to :category 5 def category 6 object.category.name 7 end 8 9end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/24 05:11