##記事投稿のビュー
posts/new.html.erb
<%= form_tag("/posts/create") do %>・・・・1
<% @post.errors.full_messages.each do |message| %>・・・・2
<div class="form-error">
<%= message %>・・・2
</div>
<% end %>
<textarea name="content"><%= @post.content %></textarea>・・・1
<input type="submit" value="投稿">・・・1
<% end %>
##解説
・・・1 投稿ボタンを押すと、textareaに入力されているデータがURL"/posts/createに送信されます。
また投稿に失敗した時(字数制限を超えた時など)は@post.contentと書いておくことにより投稿前のものが初期値として、残すことができます。
・・・2 配列@post.errors.full_messagesから要素を1個ずつ抜き出して、messageに代入しています。そのmessageを<%= message %>で表示しています。
##記事投稿のコントローラ
posts_controller.rb
def create
@post = Post.new(content: params[:content])・・・1
@post.save・・・2
redirect_to('/posts/index')・・・3
##解説
・・・1name属性で指定したフォームに入力したデータであるPostインスタンスを作成し、変数@postに代入しています
・・・2作成したPostインスタンスをPostテーブルに保存しています
・・・3createアクションに対応するビューがないのでURL"/posts/index"に転送しています。