0

我很确定我在这里是个白痴,但是我离开 Ruby 的时间已经够长了,以至于我的搜索没有找到正确的答案。

我有一个带有复选框的弹出窗口。如果用户选中复选框,我希望在用户表中设置一个标志,以便复选框不会再次出现。

我已经有了代码,如果设置好了,弹出窗口就不会出现。我无法将复选框状态更改回数据库...

复选框代码如下所示:

    %button.btn.btn-primary.slide_show_next{:type => "button", :data => {:toggle => "modal", :target => "#help_slide_show_2", :dismiss => "modal"}}
      Next
      .show-slideshow
        %label
          %input.show-slideshow-checkbox{:type => "checkbox", :checked => "checked"}
          Show me this when I view a report.

相关的咖啡脚本是:

$ ->
  if typeof(gon) != 'undefined' && gon.show_help_slide_show == true && document.cookie.indexOf("show-slide-show=false") == -1
    $("#help_slide_show").modal()

  if document.cookie.indexOf("show-slide-show=false") != -1
    $(".show-slideshow-checkbox").attr("checked", false)

  $(".show-slideshow-checkbox").change( (event) ->
    val = $(event.target).prop("checked")

    document.cookie = "show-slide-show=#{val}; Path=/;"
    $(".show-slideshow-checkbox").attr("checked", val)
  )
4

1 回答 1

0

查看form_for。这将帮助您从视图更新模型。下面是一个haml form_for 的代码,等效的erb 可以在form_for 文档中找到。我发现对于某些语法问题,haml 文档并不像我想要的那样健壮。

= form_for @user, remote: true do |f|
    = f.label 'checkbox'
    = f.check_box :table_column, autofocus: true
    = f.submit
于 2019-03-18T21:27:55.597 回答