Рельсы: кнопка для

#ruby-on-rails

Вопрос:

Есть ли лучший/более чистый способ написать следующее в rails:

 @next_user = @users[@users.index(@user)   1]
if (@next_user)
    button_to "Next User", click_url(:id => @next_user.id);
else
    button_to "Next User", {}, :disabled => true;   
end
 

Я пытался

 @next_user = @users[@users.index(@user)   1]
button_to "Next User", click_url(:id => @next_user.id), :disabled => !@next_user;
 

Но приложение выдает исключение при достижении последнего элемента массива.

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

Ответ №1:

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

 @next_user = @users[@users.index(@user)   1]
button_to "Next User", @next_user.nil? ? {} : click_url(:id => @next_user.id), :disabled => !@next_user;
 

Комментарии:

1. Если вы удалите .ноль? и переверните операнды тернарного оператора, это выглядит проще, спасибо.