Выпадающее поле в направляющих

Используйте тот факт, что скребки имеют тенденцию загружать много страниц в быстрой последовательности, чтобы обнаружить поведение скребков. Отображать CAPTCHA для каждой загрузки n страниц в течение x секунд и / или включать экспоненциально растущую задержку для каждой загрузки страницы, которая становится достаточно большой, когда, скажем, десятки страниц загружаются каждую минуту.

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

27
задан alamodey 16 June 2009 в 13:35
поделиться

3 ответа

использовать помощник collection_select http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M001593

Это позволит вам написать что-то вроде:

collection_select(:user, :role_id, @roles, :id, :role_title, {:prompt => true})

И получить

<select name="user[role_id]">
  <option value="">Please select</option>
  <option value="1" selected="selected">Administrator</option>
  <option value="2">User</option>
  <option value="3">Editor</option>
</select>
45
ответ дан 28 November 2019 в 04:42
поделиться

Будет создано раскрывающееся меню, в котором отображается имя роли в раскрывающемся списке, но использует role_id в качестве значения, переданного в форме.

select("person", "role_id", @roles.collect {|r| [ r.name, r.id ] }, { :include_blank => true })
15
ответ дан 28 November 2019 в 04:42
поделиться

Помощник формы имеет группу методов, специально написанных для создания выпадающих списков выбора. Обычно вы будете использовать метод select_tag для создания раскрывающихся списков, но в вашем случае вы можете использовать collection_select, который принимает модель ActiveRecord и автоматически заполняет форму из нее. На ваш взгляд:

<%= collection_select @roles %>

Узнайте больше о помощнике форм Rails здесь: http://guides.rubyonrails.org/form_helpers.html

3
ответ дан 28 November 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: