私はMichael HartlのRuby on Railsチュートリアルの作業をしています。現在、ユーザーの属性のいずれかを編集するには、ユーザーがパスワードを確認する必要があります。これをしなくてもユーザー属性を更新する方法はありますか?Ruby on Railsチュートリアル:パスワードを確認せずにユーザー情報を編集する方法
私のフォームは次のようになります。
<%= form_for @user do |f| %>
<div class="field">
<%= f.label :course1 %><br />
<%= f.text_field :course1 %>
</div>
<div class="actions">
<%= f.submit "Update" %>
</div>
<% end %>"
とusers_controller.rbの私の更新定義は次のようになります。
def update
if @user.update_attributes(params[:user])
flash[:success] = "Edit Successful."
redirect_to @user
else
@title = "Edit user"
render 'edit'
end
end
現在、update_attributesアクションが失敗しました。
ありがとう!パスワードが実際に変更されている確認のためにその方法は、それだけをチェックし、次のように
validates_presence_of :password_confirmation
がif
句を追加します:あなたのUser
モデルに
に私のために働いたコードであり、存在=> true、:確認=> true、長さ=> {:within => 6.40} ' 私は試しました: ' validates:password、:presence => true、:確認=> true: length => {:within => 6.40}、if =>:password_changed? ' そして構文エラーが発生しました。何か案は? – steffi2392
あなたのコードと一致するように私の 'User'モデルを変更しました。エラーが出ました:" Undefined method password_changed? "どのように/どこで定義すればよいですか? – steffi2392
他にどのようなバリデーションがありますか?あなたの検証コードは実際に私にとって完璧に機能します。それはどのような特定の検証エラーですか? (例えば、「パスワードが確認と一致しません」のようなものですか?) –