Railsの単一の属性を直接更新する方法を知りたいです。私はすでにそれを解決するために多くの方法を試しましたが、どれもうまくいきません。現在、私の見解では、次のコード行があります。
<%= link_to("Ban", admin_update_path(user), :confirm => "Are you sure?")%>
次に、私のコントローラーで:
def update
@user = User.first
if @user.update_attributes(:reputation =>1)
redirect_to admin_viewAllUsers_path, :notice => "User banned!"
else
render "index"
end
end
それから私のルートで:
get "admin/edit"
put "admin/update"
注:ルートにput "admin / update"を使用した場合、「ルートが一致しません[GET] "/admin/update.2"エラーが発生しますが、get "admin/update"を使用した場合は取得できませんでしたエラー以外の:reputationは更新されません。ところで、:reputationは整数です。
さらに、User.firstの代わりにUser.find(params [:id])を使用すると、「IDなしでユーザーが見つかりませんでした」というエラーが発生します。
plsは役立ちます。私は何をすべきか?どこで私は間違えましたか?