【问题标题】:Ruby on Rails: Saving session variable from input fieldRuby on Rails:从输入字段保存会话变量
【发布时间】:2014-01-04 19:44:03
【问题描述】:

当用户输入位置时,如何保存会话变量(可能保存到 cookie 中)?我想保留此信息以供将来登录。因此,他们不必多次重新键入他们的位置。

<%= 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

如果尚未设置,我必须设置一个变量,如果已经设置,则将其显示在字段中

【问题讨论】:

  • 为什么不在用户模型中添加一个字段location 并保留它?
  • @YevgeniyAnfilofyev 你的意思是把它保存到数据库中吗?

标签: ruby-on-rails ruby session session-variables session-cookies


【解决方案1】:

您可以使用 cookie:

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

查看更多here。

你也可以像this一样使用session_store。

【讨论】:

    【解决方案2】:

    你试过了吗:

    session[:location] = params[:loc]
    

    【讨论】:

    • 每次我关闭浏览器,会话都会消失。我也试过cookies[:location]。它应该消失吗?
    • @andrewliu 是的,这是设计使然。 Rails CookieStore 使用会话 cookie;会话 cookie 仅在浏览器关闭之前有效。
    猜你喜欢
    • 2013-11-05
    • 2017-07-04
    • 2017-10-27
    • 2014-05-17
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    相关资源
    最近更新 更多