2011-02-24 10 views
0

私はこのセットアップを持っていると言っています:モデルがコントローラーの名前と一致しない場合はどうなりますか?

私のモデルは「コンテンツ」です。このモデルを2台のコントローラで使いたいと思います。

blog_controller.rb article_controller.rb

私の「コンテンツ」モデルは、このコンテンツは「ブログ」や「記事」であるなら、私に告げるプロパティ「CONTENT_TYPE」を有します。

リソース:記事 リソース:ブログ

権利を

これはやってから私を防ぐように見えますか?モデルが異なるからですか?または私はまだこれを行うことができますか?

答えて

1

これでも実行できます。

ルートファイルでは、デフォルトでresourcesメソッドが、渡されたのと同じ名前のコントローラを探します。だから、関係なく、モデルの名前が何であるかの、あなたはblog_controllerという名前のコントローラを持っている場合は、SO古典的でファッションをresources :blog

+0

しかし、これはフォームヘルパーのようなものには影響しませんか? – Blankman

+0

あなたは:url => 'articles_path'をフォームヘルパーに渡して、そこに送信し、articles_controllerのcreateアクションをトリガーすることを知っているでしょう(これは 'new'のフォームと仮定します)。 – ctcherry

1

を行うことができ、代わりにあなたの質問に答える私は批判に実装を行くよ;-)

Iあなたの問題の根源は、記事とブログの間でコードを共有しながら、コンテンツ用の単一のテーブルが必要なことだと考えてください。レールでは、これを行う方法は "Single Table Inheritance"と呼ばれます。

関連する問題