フィクサー モデルがありますが、アプリ内の他のすべてのモデルとは異なり、ルーティング ファイルにリソース行があるにもかかわらず、ルーティングが正しく機能しません。
問題は、次のように、基本的なショーパスにさまざまな方法でリンクしようとしたときです。
<%= link_to "Fixer", fixer_path(@fixer) %>
また
<%= link_to "Fixer", @fixer %>
また
<%= link_to "Fixer", fixer_path(@fixer.id) %> # I got desperate
/fixers/[:id] ではなく、/fixers.[:id] (実際のページではありません) にリンクしています。何が起こっているのかわかりません。私のリソース行がそこにあり、show が基本的なリソース アクションであり、他の同様のリソース モデルはすべて正常に動作しているようです。
何か案は?(必要に応じてさらにコードを追加できます。何が関連するかはわかりません)。
編集 - 私のレーキルートでのフィクサーの出力:
fixers GET /fixers(.:format) fixers#index
POST /fixers(.:format) fixers#create
new_fixer GET /fixers/new(.:format) fixers#new
edit_fixer GET /fixers/:id/edit(.:format) fixers#edit
GET /fixers/:id(.:format) fixers#show
PUT /fixers/:id(.:format) fixers#update
DELETE /fixers/:id(.:format) fixers#destroy
うわあ。これを投稿した後、私の他のすべてのモデルにある show アクション行の前に、5 行目に「fixer」がないことに気付きました。なぜそれが起こったのでしょうか?どうすれば修正できますか?
編集 - 私はそれを理解しました!本当にばかげた問題。何らかの理由で、これらすべてを行う方法を学んでいたときに、リソース行を含め、その上に次の行を追加しました。
match '/fixer', to: 'fixers#new'
その行を取り出したとき(冗長だったため)、問題は解消されました。Railsルーティングのオートマジックをいじっていたと思います。彼らは実際にこれらのデフォルトを最良のオプションにしています.