我正在尝试向我的应用程序添加路径。我有我想要的功能的代码,但我想对它进行分组,以便更直观地阅读。下面的代码:指定资源顺序
get 'posts/search' => 'posts#search',
:as => :search_posts
put 'posts/search_result' => 'posts#search_result',
:as => :search_posts_result
resources :posts do
end
,但我想这样做:
resources :posts do
get 'posts/search' => 'posts#search',
:as => :search_posts
put 'posts/search_result' => 'posts#search_result',
:as => :search_posts_result
end
这是一个非常小的差异,但这样做后者的方式定义运行resources :posts
第一。因此,Rails尝试将/posts/search
与/posts/:id
(用于显示)匹配,并提供错误,因为它无法找到ID为“search”的帖子。有没有一种方法可以告诉rails在运行resources :posts
之前运行get和put定义?
你说得对使用'PUT帖子#search_result'。我在写这篇文章后意识到它应该是一个'GET'。谢谢你的深思熟虑的答案。你的答案和dinatih的工作,但我给这个给你额外的描述。 – 2011-04-26 00:38:22
@Eric Hu:谢谢你的接受。让我变傻,但不应该将/ posts/search的搜索结果作为帖子本身,而不是单独的类型?换句话说,每个搜索结果的链接都不应该是/ post/id吗? – coreyward 2011-04-26 04:33:00
谢谢你的回答!正如我现在计划的那样,'posts#search_results'(我在代码中添加了s)就像'posts#index',但只列出了与'posts#search'中输入的用户搜索参数相关的帖子。目前,它实际上使用'posts#index'视图,但我期望为'posts#search_results'制作一个单独的视图,以便可以通过AJAX完成。那有意义吗? – 2011-04-26 21:02:07