凤凰联系表格

3 elixir phoenix-framework

我刚刚开始使用Phoenix,我正在浏览发送电子邮件并查看Phoenix.HTML.Form文档.我已经能够根据指南正确设置所有内容,并通过iex发送测试电子邮件,但我还没有弄清楚如何在不使用表单中的@changset的情况下发送电子邮件.我的印象是只在我使用模型数据时才需要使用@changest.对于我的场景,我只是想捕获用户点击发送时发送给我的姓名,电子邮件和消息.

非常感谢!

Gaz*_*ler 10

您可以使用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
Run Code Online (Sandbox Code Playgroud)

使用这样的模块,您可以像处理模型一样对待它,并且您的表单将被验证等.然后您可以将整个%ContactForm{}结构传递给您的邮件程序功能以发送电子邮件.