다음과 같은 방식으로 작성된 form_for가 있습니다.
<div class="field">
<%= location.label :city %>
<%= location.text_field :city, :disabled=>true%>
</div>
<div class="field">
<%= location.label :country %>
<%= location.text_field :country, :disabled=>true%>
</div>
보시다시피 두 텍스트 필드는 jquery 함수에 의해 자동으로 채워지고 사용자가 처리하도록 허용하지 않기 때문에 비활성화됩니다. 문제는 이런 식으로 뷰가 비활성화되어 있기 때문에 해당 매개 변수를 컨트롤러에 전달하지 않는다는 것입니다 !!! 편집 불가능한 text_field를 컨트롤러에 전달하는 다른 방법이 있습니까? 텍스트 상자 내부의 사용자에게 결과를 표시하고 싶기 때문에 숨겨진 필드를 사용하지 않도록주의하십시오.
TNX
답변
읽기 전용으로 만드십시오!
<%= location.text_field :country,:readonly => true%>
답변
트릭은 변경하고 싶지 않은 항목에 대해 레이블과 함께 “객체”를 사용하는 것입니다. 코드 작성 방법은 다음과 같습니다.
<%= location.label(:country, f.object.country) %>