私はRailsに非常に慣れていないため、少し苦労しています。
基本的なサインアップ、編集プロセスに従うユーザーがいます。
ユーザーが「部分登録」できる状況があります。つまり、既存のユーザーによる招待プロセスを介してそこに配置されたランダムなパスワードを持つデータベース内のユーザーの電子メールアドレスです。
データベースに技術的に既に存在する招待されたユーザーが登録しようとすると、ユーザーオブジェクトとテーブルの一意のインデックスに一意性チェックが適用されているため、「電子メールは既に存在します」と表示されます。
これをオフにし、create メソッド内で if ステートメントを使用して、ユーザーが存在するかどうかを確認し、他の値が更新または新規作成されて保存されていることを確認しました。すべての if 条件が無視され、新しいユーザーが作成されました。
私がしたいのは、ユーザーを「作成」するのと同じ登録フォームを使用して、既存の「部分登録済み」ユーザーを入力したパスワードと名前 (電子メールアドレスチェック) で更新し、他のデータベースフラグが true に設定されている場合です。ユーザーが存在するが条件が満たされていない場合は、「パスワードを忘れた」ページをロードするか、ユーザーが新しいユーザーである場合は作成して保存します。
上記を達成する方法についての支援やアドバイスは素晴らしいでしょう。
ありがとう
ヴィッキー
これが私のセットアップです:
ユーザークラス
class User < ActiveRecord::Base
  attr_accessor :password
  attr_accessible :email, :name, :password, :password_confirmation, :tandc
  email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :name, :presence => true,
                   :length => { :maximum => 50 }
  validates :email, :presence => true,
                    :format => {:with => email_regex },
                    :uniqueness => { :case_sensitive => false }
  validates :password,  :presence => true,
                        :confirmation => true,
                        :length => { :within => 6..40 }
  validates :tandc, :presence => true
  before_save :encrypt_password
  .
  .
  .
end
私は次のUsersControllerを持っています
  def new
    @user = User.new
    @title = "Sign Up"
  end
def create
 if @user.save
    sign_in @user
    redirect_to @user
 else
    @title = "Sign up"
    render 'new'
 end
end
def update
  if @user.update_attributes(params[:user])
    redirect_to @user
  else
   @title = "Edit"
   render 'edit'
  end
end
.
.
.
ビューがあります: user > new.html.erb
<%= form_for(@user, :html => { :class => "validateUser", :name =>"edit_user"}) do |f| %>
  .
  .
  .
  form stuff here
  .
  .
  .
<% end %>
およびユーザー> edit.html.erb
  <%= form_for(@user, :html => { :class => "validateUser", :name =>"edit_user"}) do |f| %>
  .
  .
  .
  form stuff here
  .
  .
  .
  <% end %>
ユーザーのルートは次のとおりです
    users GET    /users(.:format)                users#index
          POST   /users(.:format)                users#create
 new_user GET    /users/new(.:format)            users#new
edit_user GET    /users/:id/edit(.:format)       users#edit
     user GET    /users/:id(.:format)            users#show
          PUT    /users/:id(.:format)            users#update
          DELETE /users/:id(.:format)            users#destroy