미리 도움을 청하십시오! 내 사용자에게 내 MySQL 데이터베이스에 저장 한 정보를 볼 수있는 방법을 제공하고 있습니다. 문제는 내 확인란 상태가 사용자가 레코드에 저장 한 내용에 따라로드되지 않는다는 것입니다.Ruby에서 조건문과 함께 동작하는 체크 박스를 얻을 수 없습니다.
<% 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
EDIT 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 %>
당신이 정말로 확인 된 경우를 , 그것은'params [: newitem_id] .blank? '가'true'이어야 함을 암시해야합니다. 아마도 "nil"을 검사 할지라도 (정말로 "빈 값"이 아닌 값을 기대하지 않는다면) :'if params [: newitem_id]와 @ newitem.optimize! = 1' – lurker
감사합니다. mbratch . 실제로 비어 있어야하는지 숨겨진 필드의 코드를 추가했습니다. 'if params [: newitem_id]와 @ newitem.optimize! = 1'을 사용할 때, 체크 박스는 최적화가 0 일 때에도 항상 체크됩니다. – KDP
내가 말했듯이, 문제는'params [: newitem_id]'값입니다. 빈칸이거나 nil이라면'optimize'의 값이 무엇이든 상관 없습니다. 체크 박스가 체크됩니다. 따라서'param [: newitem_id]'는 공백이거나 귀하의 경우에는 nil이어야합니다. – lurker