我正在使用Rails 4开发应用程序。 在页面中,我有一个复选框,我想存储在用户会话哈希中。
关注我的代码:
# show.html.erb
...
<%= check_box_tag "", "", staytuned_get(some_id), onclick: staytuned_swap(some_id) %>
...
# myhelper.rb
def staytuned_get(some_id)
session["staytuned_#{some_id}"] || false
end
def staytuned_swap(some_id)
session["staytuned_#{some_id}"] != session["staytuned_#{some_id}"]
end
如果未设置“staytuned _#{some_id}”或为false,则staytuned_get将返回false。否则,它返回true。 staytuned_swap交换布尔会话变量(从true到false,反之亦然)。
不幸的是,即使点击和刷新后,会话[“staytuned _#{some_id}”]仍然是假的。
任何人都可以解决这个问题,谢谢你。
答案 0 :(得分:0)
这不是它在浏览器中的工作方式。
当你说onclick: staytuned_swap(someid)
时,它会调用函数,该函数将始终返回false
(变量通常等于它自己......)并将其用作onclick
属性。
你想要的是一些JavaScript在点击时做了一些AJAX。