Это неправильное использование skip_before_filter
.
Чтобы применить фильтр require_login
исключительно к действиям [:create,:new,:accept]
и пропустить фильтр для других, сначала необходимо применить фильтр:
before_filter :require_login
Затем вы должны указать rails пропустить этот фильтр за исключением для действий "создать, новый и принять".
skip_before_filter :require_login, :except => [:create,:new,:accept]
вы также можете использовать skip_filter
, который позволяет включать фильтры before_filter
, after_filter
и around_filter
:
skip_filter :require_login, :except => [:create,:new,:accept]
Ссылка: Руководство по Rails 3.2
В Rails 4.0эквивалентные методы: before_action и: skip_before_action.
Ссылка: Руководство по Rails 4.0