Rails 3: псевдоним имен атрибутов в meta_search - PullRequest
0 голосов
/ 08 декабря 2010

Я использую 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]

Это не просто тот случай, когда нужно сократить длинные имена атрибутов, но мне также необходимо замаскировать имена некоторых потенциально чувствительных атрибутов для целей поиска.

IЯ посмотрел на alias_attribute, но не смог заставить meta_search распознать псевдоним атрибута.

Я приветствую любые предложения.

1 Ответ

1 голос
/ 09 декабря 2010

Вы можете сделать, как предложил rspeicher. Пользовательский метод поиска будет отображаться в вашем списке параметров.

Re: конфиденциальная информация в ваших атрибутах, хотя ... Если кто-то, зная ваши имена атрибутов в представлении, представляет потенциальную проблему для вашего приложения, я бы серьезно подумал, какие меры безопасности предпринимаются на ваших уровнях модели и контроллера.

...