0

私は定義済みのユーザーを持っており、彼のアカウントが彼の電子メールと名前を再入力していることを確認できるようにしたいと考えています (それらは第三者によって入力されているため)。だからここに私が持っているものがあります:

def confirm_account
    if request.get?
      self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)
    elsif request.put?
      self.resource = build_resource(resource_params)
      if self.resource.save 
      else
        respond_with resource
      end
    end
  end

そして、私のテンプレートには次のものがあります。

<%= simple_form_for(resource, :as => resource_name, :url => confirm_account_path(resource_name), :html => { :method => :put, :autocomplete => "off", :class => 'form-vertical' }) do |f| %>
  <%= devise_error_messages! %>
    <h1> Create your Account </h1>
    <%= f.input :first_name, :label => "First Name" %>
    <%= f.input :last_name, :label => "Last Name" %>
    <%= f.input :email, :label => "Email add." %>
  <p>
    <%= f.button :submit, "Create account" %>
  </p>
<% end %>

ただし、送信ボタンをクリックすると、ログに次のように表示されます。

   (0.3ms)  BEGIN
  User Exists (0.5ms)  SELECT 1 AS one FROM "users" WHERE "users"."email" = 'myemail@gmail.com' LIMIT 1
   (0.3ms)  ROLLBACK
Completed 406 Not Acceptable in 5ms (ActiveRecord: 1.1ms)

ユーザーを更新しようとしないのはなぜですか?

ありがとう

4

1 に答える 1

1

あなたはそれを定義していないからです。

ここでDevise::RegistrationsController の他のアクションがどのように定義されているかを確認してresourceください: https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb

于 2013-01-19T11:58:21.043 に答える