action_nameの挙動について

f:id:ihatov08:20160920162439j:plain

Railsのaction_nameメソッドの挙動についてです。

validationエラーを起こすとaction_nameは取ってこれない

新規作成の時だけpasswordの入力フォームを表示させたくてaction_nameメソッドをviewで使ったら、validationエラー時にpasswordのフォームが表示されなくなりました。

    <% if action_name == 'new' %>
<%= f.password_field :password, class: 'form-control', id: 'password' %>
<%= f.password_field :password_confirmation, class: 'form-control', id: 'password_confirmation' %>
<% end %>

new_record?を使おう

action_nameなんて使わずにnew_record?を使えばOKです。

    <% if @user.new_record? %>
<%= f.password_field :password, class: 'form-control', id: 'password' %>
<%= f.password_field :password_confirmation, class: 'form-control', id: 'password_confirmation' %>
<% end %>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です