0

フィクサー モデルがありますが、アプリ内の他のすべてのモデルとは異なり、ルーティング ファイルにリソース行があるにもかかわらず、ルーティングが正しく機能しません。

問題は、次のように、基本的なショーパスにさまざまな方法でリンクしようとしたときです。

<%= 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ルーティングのオートマジックをいじっていたと思います。彼らは実際にこれらのデフォルトを最良のオプションにしています.

4

1 に答える 1

1

ねえ、私は以前にこの同じ問題を抱えていました..残念ながら、次のことを行うことに頼っています:link_to "link text", "/fixers/#{@fixer.id}"これに対する実際の正しい答えを知りたいです。

于 2012-10-27T05:34:05.083 に答える