После долгого разговора с хорошими людьми из IndexTank я не был уверен, как решить мою проблему, и мне было интересно, может ли кто-нибудь мне помочь.
У меня есть модель статьи, которая принадлежитпользовательская модель.Эта модель статьи также имеет логический атрибут anonymous, который, если задано значение true, дает пользователю возможность публиковать статью без отображения его имени.
Article
belongs_to :user
attr_accesible :anonymous, :user_id
User
has_many :articles
Моя проблема в том, что если статья публикуется как анонимная.Я не хочу, чтобы танкер выполнял поиск в поле имени автора, но я хочу, чтобы он просматривал все остальные поля.Я попытался сделать это с помощью оператора if else, где я обычно помещал бы блок "tankit", но это не работает.
Есть ли способ, которым я мог бы поместить блок tankit в метод модели и использоватьобратный вызов валидации?
def anon_index
if self.anonymous
tankit 'my_index' do
indexes VARIABLES ETC BUT NOT the user_ attributes
end
else # if anonymous is false
tankit 'my_index' do
indexes :title
indexes :body
indexes :user_penname
indexes :user_firstname
indexes :user_lastname
end
end
end
Я думал об этом или помещал оператор if else, где идет объявление блока "tankit", но ни один из них, похоже, не поступает, если я не делаю что-то не так.