私のroutes.rbに私は次のようにしています:
resources :message_threads
私が電話するとき:
message_threads_path(1)
私は得ます:
/message_threads.1
どうしてこれなの?私の他のリソースは正常に動作します。これを正しく複数形化していないのですか?
回答:
はい、これは複数形エラーです。
ID 1を渡すことで、1つのレコードを表示したいとします。
したがって、単一の「message_thread」を使用する必要があります。
message_thread_path(1)
どちらが得られます:
http://localhost:3000/message_threads/1
resources :my_model
かresources :my_models
?(routesファイルで複数形にする必要があります。)
これは、ルートに:asパラメータを指定しない場合にも発生します。
delete "delete/:id" => "home#delete"
変更:
delete "delete/:id" => "home#delete", as: :delete
(奇妙な例は無視してください。たまたま、私たちが構築している内部アプリで偶然遭遇したものです)
match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get]
私のビューマークアップ: <%= link_to "Show Details", xyz_show_path(@project) %>
引き続き生成:http://localhost:3000/xyz/show.1
ルートファイルを変更: match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get], :as => "show"
許可: <%= link_to "Show Details", show_path(@project) %>
機能します。