私はおそらく非常に明白な何かを見逃していますが、私はこれを私たちの人生のために理解することはできません...
Deviseかどうかを確認するために、で簡単なbefore_filter
チェックを実行しようとしています。毎回falseを返し、自分で設定したので、にリダイレクトします...Orders_Controller
current_user.vendor_id == params[:vendor_id]
root_path
orders_controller
before_filter :check_vendor
.
.
.
private
def check_vendor
unless current_user.vendor_id == params[:vendor_id]
redirect_to root_path, :flash => { error: "Sorry, but you don't have sufficient privlidges to view that page" }
end
end
最も奇妙なことは、ユーザーでログインして、
http://localhost:3000/vendors/3/orders/
そして私のインデックスにこのコードを持っています:
<%= current_user.vendor_id %> <%= params[:vendor_id] %>
ビューに印刷されorders#index
ます:
3 3
これは、コントローラーで同じロジックを使用すると、両方の値が「3」(またはとが何であれ)current_user.vendor_id
であることがわかることを意味するはずです。params[:vendor_id]
どんな助けでも大歓迎です:)それが明白な答えであるならば申し訳ありませんが、私はまだRailsでかなり新しいです。