Validatesの書き方
何かをデータベースなどに登録する編集する際に入力規則を設けたい場合は、modelファイルに記載する。
#models/post.rb
class Post < ApplicationRecord
validates :contetnt,{presence:true,length:{maximum:140}}
end
上記の例では空白を許可しないvalidatesと最大文字数140文字をcontentに設定している。
この設定を実施するとcontentが未入力の状態でDataBaseを更新することはできない。
#controllers/posts/controller.rb
def new
@post = Post.new()
end
def create
@post = Post.new(content: params[:contetnt])
if @post.save
flash[:notice] = "登録が完了しました"
redirect_to("/飛ばしたいページURL")
else
render("posts/new")
end
end
#posts/new.html.erb
<%= form_tag("/posts/create") do %>
<% @post.errors.full_message.each do | message| %>
<%= message %>
<% end %>
<input type="text" name="content" value="<%= @post.content %>">
<input type="submit" value="送信">
<% end %>