【发布时间】:2015-01-25 03:19:54
【问题描述】:
我不希望参数显示在 url 中。因此一个选项
<%= link_to mem, edit_group_member_groups_path(:grp_mem => mem)%>
不适合我。
到目前为止,我已经通过这样做将参数保存在浏览器 cookie 中:
<script>
$( function() {
$(".grp_member").on("click", function(e) {
$.cookie("grp_mem",$(this).attr("grp_mem"),{ path: '/' });
});
})
</script>
<%= link_to mem, edit_group_member_groups_path, :grp_mem => mem, :class => "grp_member" %>
但是每个人都可以修改浏览器 cookie 并获得不允许的信息。
所以,我的下一个想法是将参数保存在 session 中。但是,我不知道如何将参数传递给没有 url 的会话。 javascipt也可以吗?如果是,如何?或者还有其他选择吗? 提前谢谢你。
【问题讨论】:
-
构建一个表单,而不是 link_to,该表单将提交给控制器中的新操作,该操作将设置会话值并重定向到正确的页面。
-
我可以想象,如果我只有一个内存,它可能会工作,但我有几个 。这意味着我需要为每个 mem 提供一个表格?不知怎的,我无法想象
-
您可以为每个人构建迷你表单。 :)
-
你能提供一个小例子吗?是不是类似于 {:controller => "groups",:action=> "store in session"} %>
-
另一种选择是使用可见参数创建link_to,操作将通过保存到会话并在没有此参数的情况下重定向到同一页面来对其做出反应,但是这比表单安全得多。
标签: ruby-on-rails session cookies