0

이 이것에 대해 많은 게시물은 ... 그리고 내 구문은 권리입니다 확신 해요,하지만 어떤 이유로루비 메뉴 선택 드롭 다운

을 위해 : => "어떤 값이나 텍스트"를 선택하지 않습니다 나를 위해 일해.

=form_for(@pet) do |f| 
=f.label :name 
=f.text_field :name, :placeholder => 'enter pet name...' 
%p 
    =f.label :species 
    =f.text_field :species, :placeholder => 'enter species name...' 
%p 
    =f.label :color 
    =f.text_field :color, :placeholder => 'enter color of pet...' 
%p 
    =f.label :pet_store_id 
    = f.collection_select(:pet_store_id, PetStore.all, :id, :name, {:selected => "Moe's Mammals"}) 

    = f.select(:pet_store_id, PetStore.all.map {|p| [p.name,p.id]}, :selected => "Moe's Mammals") 

%p 
    =f.submit 

... 그것은 내가 원하는이다, 내 모든 애견의 이름을 나열합니다 마지막을 볼 수 있지만, 그 목록의 첫 번째 이름은 항상 기본값이 .. :

여기 내 양식입니다 .. "Moe 's Mammals"는 드롭 다운 목록에있는 다른 애완 동물 가게의 정확한 이름입니다.

두 번째 f.select는 다른 구문에서와 똑같지 만 작동하지 않습니다. 비록 : prompt => "뭐든간에"잘 작동합니다. 그것은 나를 믿는다 : 선택은 루비를 의미하지 않는다.

+0

다음 이름 대신에 id를 사용해보십시오. – user3334690

답변

0

안녕하세요, 그냥 선택한 ID를 사용하십시오.

= f.select(:pet_store_id, PetStore.all.map {|p| [p.name,p.id]}, :selected => desired_pet_store.id) 
+0

PetStore # id 일 필요가있을 때 문자열이 선택한 선언에 사용되었다고 생각하는 것처럼 보입니다. 나는 그것을 편집하는 것이 좋습니다 : selected => desired_pet_store.id – ReggieB

+0

좋습니다. 문자열도 작동하지만 완벽하게 유지합시다. – Bot

+0

감사! 이름 대신에 이드가 진술 했어. – rikkitikkitumbo