Rails - это фреймворк с твердым мнением, как делать вещи. Вы делаете вещи не так, как Rails, и это усложнит ситуацию.
Если вы действительно не хотите менять свою форму (что категорически против)
Добавьте проверки, проверьте возвращаемое значение save
и отправьте обратно сообщение об ошибке
В вашей модели:
validates :email, presence: true, uniqueness: true
В вашем контроллере:
if subscriber.save
render json: {status: "ok", message: "success"}
else
render json: {status: "nok", message: "something went wrong"}
end
Вероятно, вам следует избавиться от свойства status
и использовать для этого код состояния HTTP (отправив взамен ответы 201 (созданный) и 422 (необработанный объект))
Некоторые другие рекомендации, чтобы сделать ваш код более читабельным:
должно быть
subscriber_new
, поскольку Ruby использует camel_case
но на самом деле в суффиксе new
нет необходимости, так что subscriber
достаточно
- Используйте два пробела для обозначения
- Не сокращать переменные (
cus_username
, ...) и не использовать префикс, когда в этом нет необходимости