添加限制以验证发送到Rails API的json数据

时间:2019-05-26 16:01:08

标签: ruby-on-rails ruby ruby-on-rails-4 rails-api

因此,我一直在创建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

这些是我的口号:

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

现在如何添加限制,例如字符限制?我已经在前端添加了一个,但是我想确保即使操作了前端,也不会在有效时提交数据。

我曾考虑过在def create中添加一些内容,但是不确定是否是这样做的方法。

1 个答案:

答案 0 :(得分:0)

You can use
`
class Slogan < ActiveRecord::Base
  validates :email, presence: true
end
`
And in controller you can do
`
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
`