草庐IT

html - rails : form_for checkbox set to true or false whether the box is checked/unchecked

coder 2023-07-31 原文

我有一个名为 users 的模型,它具有 2 个 bool 属性 send_emailsend_text。我有一个编辑用户模型的表单,我希望它根据复选框是否被选中/未选中将这些属性设置为真/假。这是我的表格

<%= form_for(@user) do |f| %>
    <div class="field">
        <%= f.label :email %> <br />
        <%= f.text_area :email %> <br />
    </div>
    <div class="field">
        <%= f.label :cell %> <br />
        <%= f.text_area :cell %> <br />
    </div>
    <div class="field">
        <%= f.label "Get Email" %> <br />
        <%= f.check_box :send_email, {}, true, false %> <br />
    </div>
    <div class="field">
        <%= f.label "Get Text" %> <br />
        <%= f.check_box :send_text, {}, true, false %> <br />
    </div>
    <div class="actions">
  <%= f.submit "Submit", class: "button small radius" %>
  <%= link_to "go back", @user, class: "button small radius secondary" %>
</div>
<% end %>

这是 user_controllerupdate Action

def update
    @user = User.find(params[:id])
    @user.update_attributes(params[:user])
    redirect_to @user
end

表单和更新看起来完美无缺,但是当我提交此表单并选中 send_email 或 send_text 框时,它不会将用户模型的属性(send_email、send_text)更改为 false

最佳答案

当你的表单作用于一个对象时,Rails 会为你做这件事,就像这样把所有额外的东西从标签中去掉:

<div class="field">
    <%= f.label "Get Email" %> <br />
    <%= f.check_box :send_email %> <br />
</div>

一切都应该如您所愿开始工作。如果属性为真,复选框将被勾选,反之亦然,提交表单时的选中状态将影响属性。您的其余代码没问题。

关于html - rails : form_for checkbox set to true or false whether the box is checked/unchecked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16844243/

有关html - rails : form_for checkbox set to true or false whether the box is checked/unchecked的更多相关文章

随机推荐