この問題をどこから始めればよいかわかりません。ネストされたルートを持つ画像があります。例:
localhost:3000/users/1/images/3
localhost:3000/users/1/images/4
最初の画像 (id = 3) に入ると、機能します。しかし、2 番目のイメージ (id = 4) に移動すると、ルーティング エラーが発生します。
No route matches {:action=>"show", :controller=>"images", :user_id=>1, :id=>nil}
他の画像も (以前のアップロードから) 持っています。他の画像をアップロードすると、ID が nil になります。
データベースを確認すると、データがそこにあり、ID 4 の正しい行があることが示されています。
これは誰かに起こりましたか?rake
使用できるコマンドの種類はありますか?これは困惑しており、エラーの原因を確認するためにコードをどこから表示し始めればよいかさえわかりません
編集:
user_image GET /users/:user_id/images/:id(.:format) images#show
ルート.rb:
App::Application.routes.draw do
resources :users do
resources :images do
resources :comments, :defaults => { :commentable => 'image' }
end
end
end
編集:
私は問題を理解しました..どうやら、データベースから「次の」画像を取得しようとしているshow.html.erbビューにあるパスであり、取得するIDがありません
<%= link_to "Next", user_style_path(@image.user_id, @image.next_img) if user_style_path(@image.user_id, @image.next_img) %>
私のモデルのどこに私は持っています:
def previous_img
self.class.first(:conditions => ["created_at < ?", created_at], :order => "created_at desc")
end
def next_img
self.class.first(:conditions => ["created_at > ?", created_at], :order => "created_at asc")
end
ユーザーにのみ関連付けられた画像に戻すにはどうすればよいですか?