Railsはまだかなり新しいので、完全に間違ったアプローチを取っている場合は、遠慮なく私を怒らせてください。
ルートヘルパーメソッドを保持しながら、モデルを操作しないアクションでいっぱいのルートコントローラーがあることをroutes.rbに認識させるにはどうすればよいですか?次のようなリクエストに対応してほしいのですが。
http://localhost/download
http://localhost/share
のようなルートヘルパーと
download_app_path
share_path
ただし、次のような静的な名前付きルートはありません。
match '/download' => 'site#download', :as => :download_app
match '/share' => 'site#share', :as => :share
アプリからモデルを作成、表示、または操作しないSiteControllerから。
このようなアプローチを試してみましたが、ルートヘルパーを生成しなくても機能します(当然)
match '/:action', :controller => 'site'
理論的にはルートヘルパーがなくても実行できますが、URLオプションのハッシュをlink_toまたはformメソッドに渡すよりも少し読みやすいと思います。
より機知に富んだルートコントローラーを実現する方法はありますか、それとも私がRailsに対して型破りにしようとしていることですか?
編集
わかりやすくするために、このSiteControllerクラスは次のようになります。
class SiteController < ApplicationController
def download
@custom_options = { .. }
end
def share
@custom_options = { .. }
end
def about
end
end
その目的は、リソース(ユーザーやフレンドシップなど)と相互作用しないページを1つのコントローラーに収集し、それらをすべて1か所に保持できるようにすることです。このコントローラーをアプリケーションルートコントローラーとして設定しようとしています。そのため、このコントローラーからのすべてのパスは、アプリホスト(myapp.com/download)から直接離れます。
前もって感謝します!