두 개체 구성 요소 & 출처가 있습니다. 성분에 내가
뷰가 표시ruby - 채움 콤보 상자
<p>
<b>Name:</b>
<%= @ingredient.name %>
</p>
<p>
<b>Origin:</b>
<%= @ingredient.origin_id %>
</p>
을 origin_id 한 수준의 성분이 선언되도록에서
class Ingredient < ActiveRecord::Base
has_and_belongs_to_many :recipes
belongs_to :origin
attr_accessible :name, :origin_id
end
클래스 기원
class Origin < ActiveRecord::Base
attr_accessible :name
end
을 다음과 같이
각 성분은 원점이있다 내가 쓰는 양식을 편집하면 작동합니다.
<% originsArray = Origin.all.map { |origin| [origin.name, origin.id] } %>
<div class="field">
<%= f.label :origin_id %><br/>
<%= f.select(:origin_id, originsArray) %><br/>
</div>
하지만 난 내가 얻을
<%= collection_select(:origin, :id, @origins, :id, :name, options ={:prompt => "-Select a payment"}, :class =>"origin") %>
(모든 튜토리얼에서와 같이) 대신 작성하는 경우
undefined method `map' for nil:NilClass
내가 어떻게 해결해야합니까?
편집 추가 :
데프 @ingredient = Ingredient.find ([: ID] PARAMS) 편집 @origins = Origin.all 끝을
"편집 양식에 쓰고 작동합니다"- 파산하지 않은 경우 수정하지 마십시오. –
알아. 그러나 다른 형태로 나는 그것을 바꾸고 싶다. 노력하는 것보다 효과가있는 것을 시도하고 변경하는 것이 낫습니다. 디버그하기 쉽다. – Jeb