Rails 3:meta_search中的别名属性名称

时间:2010-12-08 18:24:22

标签: ruby-on-rails ruby-on-rails-3 meta-search

我正在使用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识别属性别名。

我欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

你可以像rspeicher建议的那样做。自定义搜索方法将显示在参数列表中。

Re:您的属性中的敏感信息,但是......如果知道您的属性名称的人在您的应用程序中存在潜在问题,我会认真考虑您的模型和控制器层正在采取哪些安全措施。