Micropost API格式

时间:2016-11-25 21:20:51

标签: ruby-on-rails json

我一直在关注本教程:https://www.railstutorial.org/book/user_microposts。我的问题是,如何将我的微博转换为我的API的可读json格式?这是我的Micropost控制器:

class MicropostsController < ApplicationController
  before_action :logged_in_user, only: [:create, :destroy]

  def create
    @micropost = current_user.microposts.build(micropost_params)
    if @micropost.save
      flash[:success] = "Micropost created!"
      redirect_to root_url
    else
      render 'static_pages/home'
    end
  end

  def destroy
  end

  private

    def micropost_params
      params.require(:micropost).permit(:content)
    end
end

微博的唯一字段是内容字段。我如何在我的api中将其显示为json?此处还有我的用户控制器,用于显示微博:

class UsersController < ApplicationController
    def show
        @user = User.find(params[:id])
    @microposts = @user.microposts.paginate(page: params[:page])
    end

    def new
        @user = User.new
    end

  def create
    @user = User.new(user_params)
    if @user.save
      log_in @user
      flash[:success] = "Welcome to the Sample App!"
      redirect_to @user
    else
      render 'new'
    end
  end

    private

      def user_params
        params.require(:user).permit(:name, :email, :password,
                                   :password_confirmation)
      end
end

我知道我需要创建api和版本文件夹,但我不知道如何将微博响应格式化为json。我能够为我的用户做到这一点,但我正在为微博努力。非常感谢帮助:))

1 个答案:

答案 0 :(得分:1)

为了响应JSON,您可能需要配置控制器以响应此格式。一种方法是拨打respond_to

respond_to do |format|
  format.html
  format.json
end

Checkout Rails文档了解更多详情:http://api.rubyonrails.org/classes/ActionController/MimeResponds.html