RailsがコントローラーアクションスタイルのURLを使用していることは知っています。www.myapp.com/home/indexたとえば
、RailsアプリにこのようなURLを設定したいのですが、www.myapp.com/my_page_hereこれは可能ですか。
2 に答える
ファイル内の任意のまたはブロックのget外側を使用するだけです。resourcesnamespaceroutes.rb
get 'my_page_here ', :to => 'home#index'
Rails 3+を使用していると仮定して、を使用しないでくださいmatch。ページがフォームからのデータを受け入れる場合、POSTリクエストを受け取る必要があるため、危険な場合があります。match副作用のあるアクションでGETリクエストを許可します-これは良くありません。
get可能な場合は、常に、、、またはこれらのバリアントを使用putしpostてください。
パスヘルパーを取得するには、次のことを試してください。
get 'my_page_here ', :to => 'home#index', :as => :my_page
そうすれば、あなたの見解でmy_page_pathは、http://{domain}/my_page_here
そのURLに一致するルーティングルールを作成する必要があります。この場合は次のようになります。
match 'my_page_here' => 'your_controller#your_action'
コントローラとアクションは、そのページの動作を指定します
だからあなたはすることができます
match 'my_page_here' => 'home#index'
また
get 'my_page_here', :to => 'home#index'
他の回答で示唆されているように。
あなたがそのようなコントローラーを持っているなら、ホームコントローラーのインデックスアクションのために
詳細については、http: //guides.rubyonrails.org/routing.htmlを参照してください。
Ruby onRailsRoutes-getとmatchの違いも参照してください