여기 내 HAML 코드 :선택한 값을 레일스 폼에 넣는 방법은 무엇입니까?
-if params[:product_id]
=select_tag 'product',
options_from_collection_for_select(Product.all, :id, :name),
placeholder: "Product", required: true,
value: Product.find(params[:product_id]).name
-else
=select_tag 'product',
options_from_collection_for_select(Product.all, :id, :name),
:prompt => 'Select', placeholder: "Product", required: true
문제는 내가 요소 검사 할 때 값이 좋은 것입니다 :
<select id="product" name="product" placeholder="Product" required="required" value="Product 2">
<option value="1">Product 1</option>
<option value="2">Product 2</option>
<option value="3">Product 3</option></select>
그 좋은 솔기하더라도
, 선택이 아닌 값에 있습니다했습니다 "Product 2", 요소의 값은 yes이지만 선택한 값은 "Product 1"입니다.난 이유를 모르겠어 그리고 내가 뭔가 x)는
편집 덤비는거야 확신 :
value: Product.find(params[:product_id]).id
value: Product.find(params[:product_id]).id.to_i
변경 이런 종류의 문제에 아무것도 변경되지 않습니다
: 그냥 미리 선택된 값이 options_from_collection_for_select하는 마지막 옵션으로 통과 될 필요가 있음을 깨달았 .name에 의해 .name이 변경되었지만, 요소를 검사 할 때 "Product 2"대신에 value = "2"를 제외하고 아무것도 변경되지 않습니다. – Charlon
다른 생각을해야합니다. 죄송합니다! –