よろしくお願いします。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 %>