Если мои URL-адреса в Rails выглядят следующим образом:
http://foobar.com/articles?category=recent
- ИЛИ -
http://foobar.com/articles/recent
Я считаю, что первый из них более RESTFUL, но последнийбыть чище (по кодам).Например, код может выглядеть следующим образом:
В контроллере статьи:
def index
if params[:category] == 'recent'
@articles = Article.by_recent
elsif params[:category] == 'expired'
@articles = Article.by_expired
end
end
В статье просмотр индекса:
<% unless @articles.blank? %>
<ul>
<% @articles.each do |article| %>
<li><%= article.title %></li>
<li><%= article.content %></li>
<% end %>
</ul>
<% end %>
С http://foobar.com/articles/recent
, мне бы пришлось настроить маршруты.Что-то вроде:
match 'articles/:category' => 'articles#index'
Выше будет доступ к контроллеру статьи, действие index.Или даже:
resources :articles do
collection do
get 'recent'
end
end
, который учитывает URL-адреса, такие как http://foobar.com/articles/recent
, но нуждается в 'недавнем' действии в контроллере Article.
И то, и другое кажется довольно полезнымв конце дня.Но каково общее согласие?Используя подход строки запроса (http://foobar.com/articles?category=recent
) или другой способ (http://foobar.com/articles/recent
).
Ждем ваших предложений.