2013-03-29 1 views
0

Mongoid를 사용하는 grouped_collection_select에 문제가 있습니다. 내가 받고있는 오류 메시지는 다음과 같습니다 : ActionView :: Template :: Error (정의되지 않은 메서드 인`merge ': name : Symbol).Mongoid를 사용하는 grouped_coolection_select

나는 Mongoid의 최신 버전 인 3.2.12 & 레일을 사용하고 있습니다.

class States 
    include Mongoid::Document 
    field :_id 
    field :name 
    field :abbreviation 
    field :countryId 

    belongs_to :countries 
end 

class Countries 
    include Mongoid::Document 
    field :_id 
    field :name 
    field :abbreviation 

    has_many :states 
end 

<div class="field"> 
    <%= f.label :_id, "Country" %><br /> 
    <%= f.collection_select :_id, Countries.order_by([:name, :asc]), :_id, :name, include_blank: true %> 
</div> 
<div class="field"> 
    <%= f.label :_id, "State or Province" %><br /> 
    <%= f.grouped_collection_select(:states, :countryId, Countries.order_by([:name, :asc]), :states, :name, :id, :name) %> 
</div> 

내가이 문제를 해결하기 위해 어떤 도움을 주셔서 감사합니다 :

여기 내 코드입니다.

+0

를 해결해야하는 저장 할 필드의 열 이름으로 두 번째를 첫 번째 매개 변수를 제거 및 변경 ([: 이름, : 오름차순]), : 상태, : 이름, : ID, : 이름) %>' – codeit

답변

0

f.grouped_collection_select은 첫 번째 매개 변수가 f.object에서 유추된다는 의미입니다. , Countries.order_by을 STATE_ID : '<% = f.grouped_collection_select (: 당신이이 시도 문제

<%= f.grouped_collection_select(:state, Countries.order_by([:name, :asc]), :states, :name, :id, :name) %> 
+0

빠른 응답을 주셔서 감사합니다. 귀하의 변경을 구현했지만 지금은이 오류 메시지가 나타납니다 : ActionView :: Template :: Error (정의되지 않은 메서드 인'state 'for # ). 해결 방법에 대한 의견? 어떤 도움을 주시면 감사하겠습니다. –

+0

대신에 다음을 시도하십시오 : state, : states of your code – regmiprem

+0

당신이 선택한 상태를 저장하려는 필드 이름에 대한 대답에서': state'를 변경해야합니다. 양식을 사용하는 곳에 대한 지식이 없어도 필드 이름이 무엇인지 알 수 없습니다. – jvnill