У меня есть следующая модель User, и я хочу убедиться, что никто не хранит пустые строки (например, пробел) в базе данных. Если кто-то вводит " " (несколько пробелов) для first_name, last_name или nickname, этот атрибут должен быть сохранен со значением nil. В Rails я бы решил эту проблему с помощью обратного вызова before_validation. Как лучше всего решить эту проблему в Фениксе?
defmodule MyApp.User do
use MyApp.Web, :model
schema "users" do
field :first_name, :string
field :last_name, :string
field :nickname, :string
timestamps
end
@required_fields ~w()
@optional_fields ~w(first_name last_name nickname)
@doc """
Creates a changeset based on the `model` and `params`.
If no params are provided, an invalid changeset is returned
with no validation performed.
"""
def changeset(model, params \\ :empty) do
model
|> cast(params, @required_fields, @optional_fields)
end
end
plug :scrub_params, "user", ...вUserController? - person Dogbert   schedule 30.04.2016