0

Как сохранить переменную сеанса (возможно, в файл cookie), когда пользователь вводит местоположение? Я хотел бы сохранить эту информацию для будущих входов. Поэтому им не придется повторно указывать свое местоположение несколько раз.Ruby on Rails: сохранение переменной сеанса из поля ввода

<%= form_tag search_path, :method => :get do %> 
    <%= text_field_tag :q, params[:q], :class => "search" %> 
    <%= text_field_tag :loc, params[:loc], :class => "search-main", :id => "loc-search", :placeholder => "address, neighborhood, city, state or zip" %> 
    <%= button_tag :type => :submit, :class => "btn btn-medium btn-inverse" do %> 
    <i class="icon-search icon-white"></i> 
    <% end %> 
<% end %> 

Это в моем layouts/application.html.erb

я должен был бы установить переменную, если она не была установлена ​​еще и отобразить его в поле, если он уже установлен

+0

Почему бы не просто добавить поле 'location' в модель пользователя и сохранить его там? –

+0

@YevgeniyAnfilofyev вы хотите сохранить его в базе данных? – hellomello

ответ

0

у вас пытавшиеся:

session[:location] = params[:loc] 
+0

каждый раз, когда я закрываю браузер, сеанс исчезает. Я также попробовал 'cookies [: location]'. Он должен исчезнуть? – hellomello

+0

@andrewliu да, это по дизайну. Rails CookieStore использует cookie сеанса; cookie сеанса действительны только до закрытия браузера. – janfoeh

2

Вы можете использовать печенье:

cookies[:name] = { 
    value: 'my_cookie', 
    expires: 1.year.from_now, 
} 

Подробнее here.

Вы также можете использовать session_store, как this.

Смежные вопросы