ImplicitTest
というモデルがあります。これは、Test
と呼ばれるRubyオブジェクトを持っているだけで、Railsで多くのことを壊していると言われています。リソースモデル名がパスまたはコントローラと一致しない場合のルーティングの記述方法
しかし、まだtest
(例:/tests
、/test/1/edit
など)というRESTfulリソースとして公開したいと考えています。さらに、コントローラーをTestsController
としておくことは素晴らしいことですが、あまり重要ではありません。
(私はroutes.rbをファイルに簡単なresources :tests
ラインを持っていることによって、これをやっていたが、これはRESTfulなフォームのために失敗した例<%= form_for @test ... >
- これは@Testオブジェクトの型がImplciitTestであることを拾い、そしてimplicit_test_path
を検索しようとしています存在しません。
を私は別の接頭辞を使用するために)(のform_for尋ねるの誰も、単一の、統一された方法はありませんでした、オプションのform_for追加しようとしたが、両方new
とedit
アクションのためのフォームの仕事を持っているという結論に達しました
私はルーティングから問題にアプローチしようとしています側。私をできるようになります私は、routesファイルに追加することができますがラインです:
- はImplicitTest
- と呼ばれるモデルをお持ちのテスト
- は<% =のform_for @Testを使って/としてパスを持っています.. 。%>タグはまだ
- は私がこれを行うには、ゴールデンパスを逸脱しています知っているが、Railsが、私はモデル名としてテストを使わせていないが、この
(オプション)TestsControllerとしてのコントローラをキープユーザーが期待する名前ですこのリソースのURLを参照してください。これを有効にする単純なルーティングオプションがあることを期待しています。
これはコントローラの名前を調整するようには見えませんでしたが、リソース:implicit_tests、:controller => "tests"、:path => "tests" 'に調整しているようです。 – Phantomwhale