Rails 2.3.2でRESTfulなルート生成の複数化に苦労しています。Rails、RESTfulルーティング、および複数化
具体的には、sitestatus
というリソースがあります。この資源は実際には数えられません(鹿は鹿であり、deersではありません)。私がintializerで無制限と指定すると、いくつかのヘルパーが表示されますが、sitestatuses_path
は利用できません(これは意味があります)。
したがって、ジェスチャーに準拠するために、私はsitestatus
を数えることができました。だから、Railsはsitestatus
〜sitestatuses
(それほど恐ろしいことではない)を複数形化していますが、でもをとってこれをsitestatu
(同時に、陽気で恐ろしいものがありません)に特異的にすると主張しています。
だから、私は私の大きなハンマーをホイップし、初期化子にこのコードを追加:
ActiveSupport::Inflector.inflections do |inflect|
inflect.plural "sitestatus", "sitestatuses"
inflect.singular "sitestatus", "sitestatus"
end
(注:私はirregular
を使用してみましたし、それが正しく動作しませんでした)
は、これを行うに私を与えます私は私の見解でsitestatuses_path
への呼び出しを試みるとき、私"sitestatus".pluralize
、しかし、私は取得コンソールで期待される結果
undefined local variable or method 'sitestatuses_path'
WHE nコンソールにActionController :: UrlHelperをロードし、sitestatus_path(123)
と呼んで、私が期待する通りsitestatus/123
を得る。しかし、私はsitestatuses_path
を呼び出すときに、私は
undefined method 'sitestatuses_path' for #<Object...
を取得し、この名前は、モデルとコントローラの名前であり、それは本当に完璧オブジェクトのビジネス名とそのラインアップの両方のための唯一の論理名です。
私には何が欠けていますか?
rakeルートを実行すると、ルートのリストに「sitestatuses」が表示されますか? –
いいえ。getルートはsitestatus_indexとして存在しますが、ポストルートは実際には空白です。 –
RESTはURI命名規則とは関係ありません。 – aehlke