From html, is it possble that I have in the wrong place should this be in the controller?
Here is the form
<div class="card">
<div class="card-body">
<%= form_for @changeset, @action, fn f -> %>
<%= if @changeset.action do %>
<div class="alert alert-danger">
<p>Oops, something went wrong! Please check the errors below.</p>
</div>
<% end %>
<div class="form-group">
<%= label f, :title, class: "control-label" %>
<%= text_input f, :title, class: "form-control" %>
<%= error_tag f, :title %>
</div>
<div class="form-group">
<%= label f, :description, class: "control-label" %>
<%= text_input f, :description, class: "form-control" %>
<%= error_tag f, :description %>
</div>
<div class="form-group" style="display: block; height: 425px;">
<div id="editormd" data-read-only="false" data-line-numbers="true">
<%= label f, :content, class: "control-label" %>
<%= textarea f, :content, class: "" %>
<%= error_tag f, :content %>
</div>
</div>
</div>
<div class="card-actionbar">
<div class="card-actionbar-row">
<%= link dgettext("cancel", "Cancel"), to: magnet_path(@conn, :index), class: "btn btn-flat btn-default ink-reaction" %>
<%= submit dgettext("submit", "Submit"), class: "btn btn-primary" %>
</div>
</div>
<% end %>
</div>
And the schema
defmodule Magnify.Magnets.Magnet do
use Ecto.Schema
import Ecto.Changeset
import Ecto.Query, only: [from: 2]
schema "magnets" do
field :content, :string
field :description, :string
field :title, :string
belongs_to :user, Magnify.Coherence.User
many_to_many :fluxes, Magnify.Magnets.Flux, join_through: "magnets_fluxes"
timestamps()
end
@doc false
def changeset(magnet, attrs) do
magnet
|> cast(attrs, [:title, :description, :content, :user_id])
|> cast_assoc(:user)
|> validate_required([:title, :description, :content,])
end
def search(query, search_term) do
wildcard_search = "%#{search_term}%"
from magnet in query,
where: ilike(magnet.title, ^wildcard_search),
or_where: ilike(magnet.description, ^wildcard_search)
end
end
controller
def new(conn, _params) do
changeset = Magnets.change_magnet(%Magnet{})
render(conn, "new.html", changeset: changeset)
end
def create(conn, %{"magnet" => magnet_params}) do
case Magnets.create_magnet(magnet_params) do
{:ok, magnet} ->
conn
|> put_flash(:info, "Magnet created successfully.")
|> redirect(to: magnet_path(conn, :show, magnet))
{:error, %Ecto.Changeset{} = changeset} ->
render(conn, "new.html", changeset: changeset)
end
end