2016-02-29 14 views
8

Af yeni soru, ama öyle gibi fonksiyon fişleri koruma örnekleri bol bulduk:Modül fişleri için korumalar?

plug :assign_welcome_message, "Hi!" when action in [:index, :show] 

Ama modülü ile bunun nasıl somut örnekler bulduk musluklar:

plug Guardian.Plug.EnsurePermissions, 
    handler: Mp.Api.AuthController, 
    admin: [:dashboard] when action in [:protected_action] 

Nereye baksam when action in [:protected_action] hareket halinde ya bana bir sözdizimi hatası veya tanımlanmamış bir işlev verir when/2. Biliyorum aptalca bir şey yapıyorum ama ne göremiyorum!

Yardım!


phoenix 1.1.4

cevap

15

aptal değil! Sadece sözdizimsel şekerin bir sonucu.

Plugs take two arguments, ikincisi seçenekler için bir argümandır. Örneğinizde, bir anahtar kelime listesini bu seçenekler argümanı olarak iletmek istersiniz. Ancak, syntactic sugar that lets your drop the square brackets yalnızca, anahtar kelime listesi işlevdeki son bağımsız değişken ise, syntactic sugar that lets your drop the square brackets10 çalışır. Bunun yerine

plug Guardian.Plug.EnsurePermissions, 
    handler: Mp.Api.AuthController, 
    admin: [:dashboard] when action in [:protected_action] 

ait

açık anahtar kelime listesi sözdizimi deneyin:

plug Guardian.Plug.EnsurePermissions, 
    [handler: Mp.Api.AuthController, 
    admin: [:dashboard]] when action in [:protected_action] 
+2

OMG, böyle olsun basit bir şey olduğunu biliyordum. Teşekkür ederim!!! – neezer

+1

Bu, yönlendirici hattımdaki aynı derleme hatasını verir, ancak denetleyicide çalışır. Herhangi bir fikir neden? Phoenix kullanarak 1.3.0 – Johannes

+0

@Johannes Aynı sorunu yaşıyorum. bir çözüm buldun mu? –