RoR,“onclick事件”如何在“check_box_tag”上运行

时间:2013-10-06 15:00:02

标签: ruby-on-rails onclick

我正在使用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}”]仍然是假的。

任何人都可以解决这个问题,谢谢你。

1 个答案:

答案 0 :(得分:0)

这不是它在浏览器中的工作方式。 当你说onclick: staytuned_swap(someid)时,它会调用函数,该函数将始终返回false(变量通常等于它自己......)并将其用作onclick属性。 你想要的是一些JavaScript在点击时做了一些AJAX。