RailsがコントローラーアクションスタイルのURLを使用していることは知っています。www.myapp.com/home/index
たとえば
、RailsアプリにこのようなURLを設定したいのですが、www.myapp.com/my_page_here
これは可能ですか。
2 に答える
ファイル内の任意のまたはブロックのget
外側を使用するだけです。resources
namespace
routes.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の違いも参照してください