我不确定从哪里开始解决这个问题。我有嵌套路线的图像,例如:
localhost:3000/users/1/images/3
localhost:3000/users/1/images/4
当我进入第一张图片(id = 3)时,它可以工作。但是当我转到第二张图片(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
如何退回到仅与用户关联的图像,以便它只会回收图像?