1

RubyonRailsアプリにDevise認証gemを使用しています。ユーザーが新しいセッションを作成してログインするときに、ユーザーモデルの列を更新したいと思います。これを行うための最良の方法は何でしょうか?

モデルを更新する隠しフィールドを作成する方法はありますか?

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
  <div><%= f.label :email %><br />
  <%= f.email_field :email %></div>

  <div><%= f.label :password %><br />
  <%= f.password_field :password %></div>

  <% if devise_mapping.rememberable? -%>
    <div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
  <% end -%>

  <% f.hidden_field :field_a, :value => 'test' %>

  <div><%= f.submit "Sign in" %></div>
<% end %>
4

1 に答える 1

1

これを行うには、Devise ::SessionsControllercreateメソッドを上書きします。ユーザーがログインすると、ユーザーを認証するだけで、ユーザーレコードは更新されません。したがって、非表示フィールドをフォームに保持する必要はありません

このようにしてみてください

class Users::SessionsController < Devise::SessionsController

def create
 #do your update here
end

end

または、このリンクをたどることができますhttp://denmarkin.tumblr.com/post/5194645960/how-to-overwrite-devise-sessions-controller-in-rails-3

于 2012-08-10T09:52:03.897 に答える