Ответ 1
Если вы не показываете show.html.erb
из действия index
, вам также нужно установить @some_instance_variable
в действие show. Когда вызывается действие контроллера, он вызывает метод сопоставления, поэтому содержимое вашего метода index
не будет вызываться при использовании действия show
.
Если вам нужно @some_instance_variable
установить одно и то же в действиях index
и show
, правильным способом было бы определить другой метод, называемый как index
, так и show
, который устанавливает переменная экземпляра.
def index
set_up_instance_variable
end
def show
set_up_instance_variable
end
private
def set_up_instance_variable
@some_instance_variable = foo
end
Приведение частного метода set_up_instance_variable
запрещает его вызывать как действие контроллера, если у вас есть шаблоны подстановочных знаков (т.е. match ':controller(/:action(/:id(.:format)))'
)