2010-06-17 18 views
5

Son zamanlarda, uygulamamı CakePHP'den Grails'e taşımaya çalışıyorum. Şimdiye kadar düzgün bir yelken oldu, CakePHP ile yapabileceğim her şey, bunu Grails'de daha az kodla yapabilirim. Ancak, ben bir sorum var:Grails'de URL Eşleme öneki

: CakePHP'de

, benim denetleyicisi bu eylemleri varsa, örneğin, belli bir eylem url önek vermek sağlayan bir URL Öneki özelliği var PostController
admin_add
admin_edit
admin_delete

sadece U erişebilirsiniz RL:

mysite/yönetici/posta/
mysite/yönetici/posta/düzenleme/1
mysite/yönetici/posta/silme ekleme/2

yerine:

mysite/posta/admin_add
mysite/posta/admin_edit/1
mysite/posta/admin_delete/2

Bunu Grails'de ya da en azından bunu yapmanın bir alternatifi yapmak için var mı?

cevap

1

ben bunu test, ama bu deneyin vermedi:

"mysite/$prefix/$controller/$method/$id?"{ 
    action = "${prefix}_${method}" 
} 

Bu önek ve yönteminden eylem adını oluşturur.

+0

Bu denedim ama sorun şu ki, tüm işlemler için bu tekrarlamanız gerekir ... – Furunomoe

5

Grails URL Eşlemeler dokümantasyon bu özel durumda size yardım etmez grails üzerinde bir göz atın (amra, bir dahaki sefere bunu kendiniz deneyin ve herhangi bir yardım olduğu sürece bir yanıt gönder). "Denetleyici", "eylem" ve "id" hariç tüm adlandırılmış parametreleri erişilebilir dinamik

  • oluştururken

    1. aksiyon kısmı kapatma olmalıdır çünkü: Daniel'in çözümü, yakın, ama işe yaramaz parametreler

    nesne aracılığıyla bir çözüm bu gibi görünebilir:

    "/admin/$controller/$adminAction?/$param?"{ 
        action = { "admin_${params.adminAction}" } 
    } 
    

    anahtarı "eylem" olarak parametreyi isim dEĞİLDİR, doğrudan eşleştirilmiş gibi görünüyor, çünkü bir eyleme ve geçersiz kılınamaz.

    Ben de jenerik öneklerle dinamik çözüm çalıştı ve o kadar iyi iş gibi görünüyor:

    "/$prefix/$controller/$adminAction?/$param?"{ 
        action = { "${params.prefix}_${params.adminAction}" } 
    }