У меня есть выпадающее меню в одном из моих представлений, что позволяет мне выбирать количество изображений на странице. Я хочу запомнить выбор на этой странице, поэтому, когда пользователь возвращается, количество отображаемых изображений - это то, что они выбрали в последний раз.Ruby on Rails - Значение файла cookie отображается только при обновлении
Для достижения этой цели я устанавливаю значение куки внутри контроллера, как этот
if cookies[:per_page].blank? cookies[:per_page] = "50" # this is the default value for a new user and incase the existing user deletes the cookie else cookies[:per_page] = params[:noofimages_perpage].to_s # this is the value selected in the drop down end @pp = cookies[:per_page] # further processing with the cookie value here end
Но я не получаю значение в печенье [: per_page].
Для проверки значения в куки, я добавил эту линию на мой взгляд
<%= @pp %>
и вид отображает значение только после обновления.
Части зрения здесь
<select name="noofimages_perpage" onchange="call the controller">
<option value="50">50</option>
<option value="100">100</option>
<option value="150">150</option>
</select>
После прочтения нескольких постов и статей, я понимаю, что печенье запись не будет доступна до последующей обратной передачи.
Некоторые указатели на то, как справиться с этим или работать вокруг, пожалуйста?
Насколько это возможно, я хочу достичь этого, не касаясь базы данных.
Большое спасибо
Почему вы перезаписать значение в состоянии еще с some_var_to_s? Разве вы не должны использовать значение cookie, если оно есть? – MattMcKnight
@MattMcKnight - когда новый пользователь приходит на сайт, cookie еще не существует. Он просматривает изображения и т. Д., Когда создается файл cookie, с 'if cookies [: per_page] .blank?', Затем его выбор или если он не меняет его значение по умолчанию, хранится в «some_var» и отправляется на контроллер для обработки. –