J'utilise meta_search comme suit:Rails 3: Aliasing les noms d'attribut dans meta_search
# app/controllers/articles_controller.rb
def index
@search = Article.search(params[:search])
@articles = @search.all
end
# app/views/articles/index.html.erb
<%= form_for @search, :url => articles_path, :html => {:method => :get} do |f| %>
<%= f.text_field :my_very_long_attribute_name_contains %><br />
<%= f.submit %>
<% end %>
Cela fonctionne comme prévu, en permettant l'attribut 'my_very_long_attribute_name' à rechercher. Le problème est ?search[my_very_long_attribute_name_contains]
apparaît dans la chaîne de requête. Quelle est la meilleure façon de mapper un nom plus court à cet attribut? c'est-à-dire ?search[mvlan_contains]
Il ne s'agit pas seulement de vouloir raccourcir les noms d'attribut longs, mais j'ai aussi besoin de masquer les noms de certains attributs potentiellement sensibles à des fins de recherche.
J'ai regardé alias_attribute
, mais je n'ai pas pu obtenir de méta_search pour reconnaître l'alias de l'attribut.
Toutes mes suggestions sont les bienvenues.
Je ne l'ai pas utilisé moi-même, mais jetez un oeil à la section "Accès aux méthodes de recherche personnalisées" du fichier README - https://github.com/ernie/meta_search –
Merci. Bien que cela soit utile, cela ne me permet pas de créer des alias pour mes attributs. – gjb