に属性名を次のように私はmeta_searchを使用しています:のRails 3:エイリアシングが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 %>
予想通りこれは「my_very_long_attribute_name」属性が検索できるようにすることで、動作します。
問題は、クエリ文字列に?search[my_very_long_attribute_name_contains]
が表示されることです。より短い名前をこの属性にマップする最良の方法は何ですか?すなわち?search[mvlan_contains]
これは長い属性名を短くしたい場合だけではありませんが、検索のために潜在的に機密性の高い属性の名前を偽装する必要もあります。
私はalias_attribute
を見ましたが、meta_searchに属性別名を認識させることができませんでした。
私は何か提案を歓迎します。
自分で使ったことはありませんが、READMEの「カスタム検索方法へのアクセス」のセクションをご覧ください - https://github.com/ernie/meta_search –
ありがとうございます。これは便利ですが、私のアトリビュートのエイリアスを作成することはできません。 – gjb