Ruby on Rails,在cookie中保存布尔值

时间:2015-02-08 14:26:39

标签: ruby-on-rails ruby ruby-on-rails-4 cookies

背景资料

我希望在我的网络应用程序上有一个设置表单,允许用户为应用程序内部的体验设置一些基本设置。我正在制作一个javascript,它根据人们选择的设置来处理必须完成的工作。

事情是......我希望用户在Cookie中更改任何内容时自动保存设置。我还没有完成所需的AJAX,但我遇到了一个早期的问题。

我的问题

我不能让cookie改变复选框的“checked'ness”。

我有这个表格。

视图/房间/ index.html.haml

= form_tag settings_path, method: 'post' do
  = label_tag :my_boolean
  = check_box_tag :my_boolean, cookies[:my_boolean]
  = submit_tag

和这个控制器

控制器/ settings_controller.rb

def index
  cookies[:my_boolean] = params[:my_boolean]
  redirect_to root_path
end

当我使用文本字段而不是复选框时,它可以正常工作。

同时

如果你能帮助我让这个更加安静,请告诉我。

1 个答案:

答案 0 :(得分:0)

我会创建一个`SettingsController'

路线可能有 match "/settings/toggle/:setting" => "settings#toggle", as: :toggle_settings

通过这种方式,您可以将控制器操作toggle用于布尔值。和其他设置更新的其他操作

然后您可以在设置中使用"1""0"作为布尔值。然后围绕cookie包装模型。