地方でリモートワーク

プログラミング、先物、fx,仮想通貨なんでもやります

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 %>