2016-04-03 12 views
0

Pundit ilkeleriyle rayları 4 kullanmaya çalışıyorum.Raylar 4 Pundit - ana modellerde ilkeler

Bir profil modelim ve bir proje modelim var. Projeler profillerle HABTM'dir.

Oluşturma olan bir proje ilkem var mı? eylem (true olarak ayarla).

Profil gösterim sayfamda, kullanıcıların yeni projeler oluşturmasına izin vermek istiyorum.

<% if policy(@project).create? %> 
    <%= link_to 'CREATE A PROJECT', new_project_path, :class=>"btn btn-info" %> 
<% end %> 

Bunu denediğimde, bir ilke hatası alıyorum. Proje eylemlerini profil görünümleri içinde kullanamadığınız için mi? Öyleyse, profil şov sayfamda yeni bir proje düğmesi gösterebilmek için onu nasıl düzeltirim?

+0

Bu sayfayı oluşturan denetleyicide '@ project' tanımlı mıdır? – miler350

+0

hayır öyle değil ................ – Mel

+0

Bu sizin şartlılığınızın şu anlama geldiğini gösterir: '<% eğer politika (sıfır) .create? %> '. Hangisi, nil politikasına neden oluyor. – miler350

cevap

0

ProjectPolicy.new(current_user, @project).create? ürününü belirli ProjectPolicy numaralı telefonlardan kullanabilirsiniz. Ancak, @ miler350 gibi, @project gibi nil olabilir. (örneğin: Kullanıcının herhangi bir projesi olmamıştır). ProjectPolicy#create? ürününüzün nil numaralı bağlantıların doğru şekilde yapıldığından emin olun.

+0

Bunu nasıl yaparım? Sadece yeni bir proje oluşturmaya izin verilirse yeni bir proje oluşturmak için bir bağlantı eklemek istiyorum. – Mel

+0

Belki de <% politika ise (Proje) .create? %> 'senin durumunda daha uygun – tangrufus