質問: Ruby on Rails 初心者です。 Windows 8 ruby Ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32] コントローラに指定したアクションとは別のアクションが実行されてしまいます。 ブラウザでhogehoge/indexと入力すると 「showだよ」の方が表示されます。 routes.rbには、以下のようにしました。 resources :'hogehoge' hogehogeコントローラは以下のようにしました。 ``` # coding: utf-8 class HogehogesController < ApplicationController #一覧 def index @msg= "indexだよ" end def show @msg= "showだよ" end def new end def update end end ``` viewは2つ(index.html.erb、show.html.erb)置いています。 indexを実行させたいのですが・・・・ 何が原因でしょうか? 【追記】 hogehoge/ だけだとindexが呼ばれます。 hogehoge/index だとshowが呼ばれました。
回答: はい、`resources`で定義したルートの場合、`hogehoge/index`は`hogehoge/:id`の方にヒットして、「id=indexで`show`を呼び出す」という意味になります。 上書きしたければ、`resources`より**前**に、`hogehoge/index`を定義しておく必要があります。