Michael Hartl が彼のチュートリアル ( http://ruby.railstutorial.org/chapters/sign-in-sign-out ) で提案したように、サインイン/アウトの仕組みを実装しました。すべてが完璧に機能しました: プロファイル ページからのユーザーの作成、削除、更新。
次に、 (STI)Teacher
のサブクラスとしてモデルを作成しました。User
独自の検証はなく、親モデル (ユーザー) と同じ検証を使用する必要があります。ただし、type = "Teacher" のユーザーの属性を更新することはできなくなりました (他のユーザーは引き続き機能します)。更新フォームをコンパイルすると、次のように返されます。
`エラーメッセージには、teacher.attributes.password is missing validation と表示されます
教師はユーザーの同じ検証を継承する必要があります。
routes.rb で、教師モデルを作成した後、以下を追加しました。
resources :teachers, :controller => 'users', :type => "Teacher"
これは、ユーザー コントローラーの update メソッドです。
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
redirect_to @user ...
@user.update_attributes(params[:user]) を @user.update_attributes(params[:teacher]) に変更すると機能しますが、明らかに教師のみです。
解決策は非常に簡単だと思いますが、私は初心者です。どんな助けでも大歓迎です!