Ruby on rails Can';在Ruby中,不要让复选框与条件语句一起工作

Ruby on rails Can';在Ruby中,不要让复选框与条件语句一起工作,ruby-on-rails,ruby,conditional-statements,Ruby On Rails,Ruby,Conditional Statements,提前感谢您的帮助!我为我的用户提供了一种查看他们保存在MySQL数据库中的信息的方式。问题是我的复选框状态没有根据用户在记录中保存的内容加载 <% if !params[:newitem_id].blank? and @newitem.optimize != 1 %> <input type="checkbox" name="optimize" id="optimize"> <% else %> <input type="

提前感谢您的帮助!我为我的用户提供了一种查看他们保存在MySQL数据库中的信息的方式。问题是我的复选框状态没有根据用户在记录中保存的内容加载

    <% if !params[:newitem_id].blank? and @newitem.optimize != 1 %>
    <input type="checkbox" name="optimize" id="optimize">
    <% else %>
    <input type="checkbox" name="optimize" id="optimize" checked="true">
    <% end %>
newitemlookup.html.erb

    <% if params[:newitemid] and @newitem.optimize = false %>
    <input type="checkbox" name="optimize" id="optimize">
    <% else %>
    <input type="checkbox" name="optimize" id="optimize" checked="true">
    <% end %>

我做了一些研究,找到了如何添加一个复选框来查看记录,然后返回结果。这是我使用的代码。这取代了if/then语句

    <%= check_box_tag 'optimize', '1', @newitem.optimize %>

例如,如果您使用f之类的表单生成器:

 <%= check_box_tag 'optimize', '1', f.object.optimize %>


如果您确实确认了
@newitem.optimize
确实是
0
并且您看到复选框被选中,那么这一定意味着
参数[:newitem\u id]。为空?
必须是
真的
。尽管我可能只是检查它是否为
nil
(除非您真的希望看到一个“空白”的非nil值):
如果参数[:newitem_id]和@newitem.optimize!=1
谢谢你,姆布拉奇。我已经为隐藏字段添加了代码,以查看它是否应该为空。当我使用您的
if参数[:newitem_id]和@newitem.optimize!=1
复选框始终处于选中状态,即使优化为0。正如我所说,问题是
参数[:newitem_id]
值。如果为空或为零,则无论
optimize
的值是多少,都会选中该复选框。所以
param[:newitem\u id]
在您的情况下必须为空或为零。这很奇怪。在源代码中,
。这不是零或空,对吗?问题不是
输入
行,而是
参数
散列。提交表单时,将创建
params
散列并将其传递给控制器。它不是一个视图变量。但是你在你的视野中检查它。您如何知道已根据您的输入设置了
参数[:newitem\u id]
    <%= check_box_tag 'optimize', '1', @newitem.optimize %>
 <%= check_box_tag 'optimize', '1', f.object.optimize %>