我一直在绞尽脑汁试图找出一些应该非常简单的东西,所以我确信我只是忽略了一些东西,并且一组新的眼睛可能很有用,因为我的所有代码似乎都模糊在一起。我正在尝试为允许用户创建类别然后根据这些类别发布相关故事的网站创建虚 URL。因此,例如,我希望用户访问 /categories/movies 以查看电影部分。如果我将其设置为使用类别 ID /categories/1,则它没有问题。无论出于何种原因,rails 一直尝试使用 id 参数而不是 title 参数来查找类别。我正在使用 Ruby 2.0.0 和 Rails 4.0。我已经读到“find_by”方法很快就会被弃用,所以如果有更好的方法来处理这个问题,那简直太好了。以下是相关代码:
类别控制器
def show
@categories = Category.find_by_title(params[:title])
@category = Category.find_by_title(params[:title])
@posts = Post.where(category: set_category).all
end
路由.rb
resources :categories
get "/categories/:title" => "categories#show"
渲染页面时的终端读数
Processing by CategoriesController#show as HTML
Parameters: {"id"=>"Movies"}
重申一下,参数应该是 {"title"=>"Movies"} 而不是 id。就像我说的,我确信这是我忽略的非常简单的事情。任何帮助,将不胜感激。谢谢。