У меня есть контроллер под названием BookingsController с действием bookings # index. Внутри действия index есть 2 переменных экземпляра, @pending_bookings
и @approved_bookings
, которые запрашивают объекты Booking по их status
.
def index
@pending_bookings = Booking.where(host_id:@user.id,
status:'pending')
@approved_bookings = Booking.where(host_id:@user.id,
status:'approved')
end
Я хочу направить пользователя к другому экземпляру индекса в зависимости от ссылки, по которой он щелкает. В основном bookings_path(@pending_bookings)
должен направить пользователя на страницу индекса, отображающую все pending_bookings
, отрицательно, bookings_path(@approved_bookings)
должен направить пользователя на страницу индекса, отображающую все approved_bookings
.
На мой взгляд, у меня есть 2 ссылки, которые должны направлять пользователя на каждый путь соответственно.
<%= link_to 'Pending Reservations', bookings_path(@pending_bookings)%>
<%= link_to 'Approved Reservations', bookings_path(@approved_bookings)%> `
Файл index.html.erb:
<%= booking_index_helper_path %>
содержит встроенный вспомогательный метод, который должен распознавать путь, по которому щелкает пользователь, и отображать правильные объекты Booking.
Вот (ошибочная) логика для распознавания пути, выбранного пользователем, и рендеринга необходимых объектов:
pages_helper.rb:
def booking_index_helper_path
if bookings_path(@pending_bookings)
render @pending_bookings
elsif bookings_path(@approved_bookings)
render @approved_bookings
else bookings_path(@total_bookings)
@total_bookings
end
end
Я вставил binding.pry
в вспомогательный метод, чтобы подтвердить, что его ударили (это так). Однако по какой-то причине, когда я нажимаю на ссылку, чтобы направить меня к нужным объектам, первое условие всегда выполняется. Как лучше написать это условие для распознавания пути, выбранного пользователем?