将集合数据保存到会话Rails 4中

时间:2016-02-26 19:07:26

标签: ruby-on-rails ruby session

我有一个问题,我想将我的数据从2个集合选择保存到会话中,因此在将此数据用于创建供应商或转发器等之后。

之所以这样,是因为我想要与用户一起登录,而这个用户可以选择一个客户端和一个角色将这些数据保存到会话中,并使用它来创建这个数据供应商和其他东西。< / p>

我的导航栏菜单应用程序布局中只有两个集合:

<%= collection_select(:client, :client_id, Client.all, :id, :name, prompt: "Escoge empresa", class: "form-control")%>
<%= collection_select(:user, :role_id, Role.all, :id, :name, prompt: "Escoge cliente", class: "form-control")%>

所以我不知道该怎么做,因为我觉得我需要创建一个带动作的控制器?并将此操作用于我的收藏?我不确定我是否需要一点方向。

问候!并感谢您的时间。 !

1 个答案:

答案 0 :(得分:0)

  • 您使用这两个选择
  • 创建表单
  • 您提交此表单,该表单将在您的控制器中调用操作
  • 在此操作中,您存储客户端和用户的id(不存储完整记录,仅存储其ID以保持会话较小并避免使用反序列化记录的麻烦)

在您的SelectionController(或任何你称之为)

def create
session[:selected_user_id] = params[:user_id]
session[:selected_client_id] = params[:client_id]
render(:whatever_you_want_to_render)
end
  • 添加帮助方法以检索用户和客户端。

在您的应用程序控制器中:

helper_method :selected_user, :selected_client

def selected_user
  @selected_user ||= User.find(session[:selected_user_id])
end

def selected_client
  ...
end

参数名称取决于您构建表单的方式。动作名称也是如此。但这应该让你开始。否则请问更详细的问题。