Die Standard-URL, die nach einer get-Anfrage in Rails generiert wird, ist nicht sehr nett anzusehen.Verbergen Sie den Params-Hash und ersetzen Sie ihn durch eine sauberere URL
Mit dem meta_search-Juwel in einer Rails 3-Anwendung habe ich ein Auswahlmenü erstellt, um eine Liste von Artikeln nach Kategorie zu filtern. Der Code sieht wie folgt aus:
<%= form_for @search, :url => articles_path, :html => {:method => :get} do |f| %>
<%= f.label :category_name_equals, "Filter by category:" %>
<%= f.collection_select :category_name_equals,
Category.all(:order => "name"), :name, :name, :include_blank => true %>
<%= f.submit "Search" %>
<% end %>
<table>
<tr>
<th>Title</th>
<th>Category</th>
</tr>
<% for article in @articles %>
<tr>
<td><%= link_to article.title, article %></td>
<td><%= article.category.name %></td>
</tr>
<% end %>
</table>
Gerade jetzt, wenn das Formular abgeschickt wird, eine lange URL zurückgegeben wird, mit dem params hash:
http://localhost:3000/articles?utf8=%E2%9C%93&search[category_name_equals]=
Reviews&commit=Search
ich die URL so sauber wie möglich halten wollen, zum Beispiel:
http://localhost:3000/articles/category/reviews
oder
http://localhost:3000/articles?category=reviews
Was sind einige Lösungen, um die params-Hash-URL für Menschen lesbarer zu machen?