2009-10-23 52 views
0

使用Catalyst::Controller::FormBuilder模塊處理Catalyst應用程序中的表單。在Catalyst :: Controller :: Formbuilder中配置form_path

的文檔說,你可以這樣設置form_path:

form_path => File::Spec->catfile($c->config->{home}, 'root', 'forms')

但調用配置()在我的應用程序的基本模塊的頂層。因此,$ c是未定義的。所以我不能調用$ c-> config - > {home}。

什麼是正確的配置方式form_path請問?

+0

'AppName-> path_to(qw/root forms /)'? – jrockway 2009-10-23 06:35:55

+0

感謝Jonathon,很好的回答。此作品: form_path => File :: Spec-> catfile(AppName-> path_to(qw'etc forms')), 我將表單,模板和配置等移出根目錄。我發現我可以通過http://example.com/forms/search/page.fb獲取模板副本等。我不喜歡那樣,所以我從根中清除了這些東西,這樣就不會再發生了。 – 2009-10-23 10:39:08

回答

0

您應該能夠使用__PACKAGE__->config散列來訪問已從應用程序的主模塊中設置的配置值。例如:__PACKAGE__->config->{home}__PACKAGE__->config->{'Controller::FormBuilder'}->{form_path}

如果您嘗試在您的應用程序主模塊中設置FormBuilder配置,您應該能夠使用文檔中提供的代碼,並用__PACKAGE__->config->{home}代替$c->config->{home}。我認爲他們可能因爲不這樣做而犯了一個錯誤,但我不確定。

相關問題