빠른 경고 : 저는 Rails에 처음 접했고 지식은 다소 쿠키 커터와 비슷합니다. 나는 어떤 일을하는 법을 알고 있지만, 나는 그들이 항상 일하는 이유에 대한 중요한 이해가 부족합니다.Form_For를 사용하여 모델의 해시 속성을 업데이트하는 방법
현재 주소, 전자 메일 등과 같은 정보가 들어있는 사용자 모델이 있습니다. 또한 visible이라는 해시가 있습니다. 해시의 키는 각각의 정보 조각이며 값은 정보가 공개적으로 표시되기를 원하는지 여부에 대해 true 또는 false입니다. 이것이 최선의 방법인지 확신 할 수는 없지만, 정보의 각 비트에 대해 부울 변수를 전체 톤으로 만드는 것 외에 다른 방법을 생각할 수는 없습니다. 마지막으로, 나는 직렬화한다. 데이터베이스의 저장 공간에 표시된다.
편집보기에는 보이는 속성을 나타내는 정보의 각 필드 옆에 체크 박스가 있어야한다. 이 주제와 관련된 수많은 게시물을 읽고 코드 변형을 시도한 후에는 언제나 어떤 종류의 오류가 발생합니다.
<%= form_for(@user, :id => "form-info-personal") do |f| %>
...
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.check_box :visible[:name] %>
을하지만이 기호는 정수로 구문 분석 할 수 없다는 오류 메시지가 다음과 같이 나에게 가장 직관적으로 올바른 보이는 코드입니다. 나는이 파싱이 어디에서 일어나려고하는지조차 모르겠다.보기가 아니라면 배열로 보이고 이름을 인덱스로 사용하려고한다.
이 질문이 사소한/겉으로보기에는 무의미한/중요한 정보가 부족한 경우 사전에 사과드립니다. 팁, 제안 사항, 링크 또는 "귀하가 근본적으로 잘못하고있는 경우에도 이러한 방식으로 돌아가서 할 수 있습니다"라는 라인을 따라 있어도 매우 감사 할 것입니다. -Nick
멀리 직렬화에서 그대로. 첫 번째 문제는 아니지만 직렬화로 인해 더 많은 문제가 발생합니다. 특정 열을 추가하는 것은 전혀 잘못된 것이 아닙니다. – wanghq
@wanghq : 직렬화에 아무 문제가 없습니다 (바로 요리하는 경우). –