私はこの問題の良い解決策を見つけたことはありません。私はadmin_content_path(content)
を呼び出すときに、私はidは、コンテンツのIDになりたい一方で、私は、idはコンテンツのスラグになりたいcontent_path(content)
を呼び出すと同じリソースに対して異なるルートIDを持つ方法
resources :contents
namespace :admin do
resources :contents
end
:私は、次のルート構造を有しています。私はちょうどidがモデルに関係しないようにしたいです(実際にはidはモデルのto_param
メソッドの戻り値です)。
私はすべてのルートに対してヘルパーメソッドを定義することを避けたいと思いますが、私の意見では弱い解決策です。
私はadmin_content_path(id: content.id)
またはcontent_path(id: content.slug)
と書くことができますが、これは実際にはちょうどハックです。また、私は
form_for @content
を書くことができないので、これは、form_for
で特に迷惑ですが、私は通常
form_for @content, url: @content.new_record? ? admin_contents_path : admin_contents_path(id: @content.id)
こんにちは、素敵な解決策!ありがとうございます – mdesantis