#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. Если вы удалите .ноль? и переверните операнды тернарного оператора, это выглядит проще, спасибо.