Добавление ограничений для проверки отправки данных json в Rails API - PullRequest
0 голосов
/ 26 мая 2019

Итак, я создавал Rails API (школьный проект), и все отлично работает, но теперь я хочу добавить некоторые ограничения для конечной точки POST.Итак, вот моя конечная точка создания, когда я иду на foo.com/api/v1/slogans:

def create
  slogan = Slogan.new(slogan_params)
  if(slogan.save)
    render json: {
      status: 'SUCCESS',
      message: 'Saved slogan',
      data: slogan
    }, status: :ok
  else 
    render json: {
      status: 'ERROR',
      message: 'Slogan not saved',
      data: slogan.error
    }, status: :unprocessable_entity
  end
end

И вот мои slogan_params:

private def slogan_params
  params.permit(:firstname, :lastname, :email, :slogan)
end

Теперь, как мнедобавить ограничения к этому, например, ограничение символа?Я уже добавил один на своем внешнем интерфейсе, но я хочу быть уверен, что даже если внешним интерфейсом манипулируют, что данные не будут переданы, если они действительны.

Я думал о добавлении чего-либо в def createно не уверен, так ли это.

1 Ответ

0 голосов
/ 28 мая 2019

Вы можете использовать

class Slogan < ActiveRecord::Base
  validates :email, presence: true
end

А в контроллере вы можете сделать

def create
  slogan = Slogan.new(slogan_params)
  if slogan.valid?
    slogan.save
    render json: {
      status: 'SUCCESS',
      message: 'Saved slogan',
      data: slogan
    }, status: :ok
  else 
    render json: {
      status: 'ERROR',
      message: 'Slogan not saved',
      data: slogan.errors
    }, status: :unprocessable_entity
  end
end
...