ユーザー コントローラーに before フィルターと def check priv を追加しました。管理者だけがすべてのプロフィールを閲覧・編集でき、作成したユーザーだけが自分のプロフィールを閲覧できるように設定されているとします。以前と同様に、誰でもプロファイルを表示/編集できました。私はいくつかの方法を試しましたが、どれもうまくいきません。管理者または通常のユーザーとしてプロファイルを表示すると、「承認されていません」というメッセージが表示されます。
どんな助けでも大歓迎です。
ユーザーコントローラー:
before_filter :check_privileges, :only => [:edit, :update]
def check_privileges
unless current_user.admin? || current_user.id == params[:id]
flash[:warning] = 'not authorized!'
redirect_to root_path
end
end
index.html:
<%= link_to user.name, user %>
<% if (current_user.admin? || current_user) == @user %>
<%= link_to "Edit #{user} profile", user %>
| <%= link_to "delete", user, method: :delete,
data: { confirm: "You sure?"} %>
<% end %>