我刚刚开始学习凤凰城,我正在浏览发送电子邮件 &也可以查看Phoenix.HTML.Form文档。我已经能够根据指南正确设置所有内容,并通过 in 发送了一封测试邮件,但我还没有弄清楚如何在不使用表单中的@changset的情况下发送电子邮件。我的印象是,只有当我使用模型数据时,才需要使用@changest。对于我的场景,我只是试图捕获一个名称,电子邮件和消息,当用户点击发送给我。
非常感谢你的帮助!
发布于 2015-10-30 09:15:21
通过使用Ecto.Schema和虚拟字段,您可以使用变更集而不需要数据库的支持:
defmodule ContactForm do      
  use Ecto.Schema
  schema "" do
    field :email, :string, virtual: true
    field :name, :string, virtual: true
    field :body, :binary, virtual: true
  end
  def changeset(model, params \\ :empty) do
    model
    |> cast(params, ["email", "name", "binary"], [])
    #|> validate_length(:body, min: 5) - any validations, etc. 
  end   
end有了这样一个模块,你就可以像对待模型一样对待它,你的表单将被验证等等。然后你可以将整个%ContactForm{}结构传递给你的邮件发送程序函数。
https://stackoverflow.com/questions/33429174
复制相似问题