0

在此先感谢您的帮助!我正在为我的用户提供一种查看他们保存在我的 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 %>

我的条件语句首先查看是否有 newitem_id。这是一个隐藏字段,它只是将所有@newitem 信息与视图连接起来。

    <input name="newitem_id" type="hidden" value="<%= params[:newitemid] %>" />  

当我在页面其他地方的条件语句中使用它时,它工作正常。

接下来,我的条件语句查看@newitem 的记录以查看optimize 是1 还是0。如果@newitem.optimize 是1,我希望选中该复选框。如果没有,我不想检查它。

不幸的是,即使字段为 0,复选框也会显示为选中状态。

编辑 1

newitemlookup.html.erb 是带有复选框的表单所在的视图。我对其进行了一些更改,并从我的控制器中添加了代码。但是,我的所有复选框都被选中,即使它们不应该被选中。

我还想看看“@newitem.optimize”返回什么值,结果当我执行 <%= @ 时,数据库中的 1 和 0 在视图中显示为“true”和“false” newsavedmap.optimize %>。这可能是问题吗?

newitemlookup_controller

    if params[:newitemid]
    @newitem = Newitem.find(:first, :conditions => {:id => params[:newitemid]})

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 %>
4

2 回答 2

0

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

    <%= check_box_tag 'optimize', '1', @newitem.optimize %>
于 2013-08-14T04:23:16.337 回答
0

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

 <%= check_box_tag 'optimize', '1', f.object.optimize %>
于 2014-06-09T22:15:47.030 回答