2016-11-17 1 views
0

학교 모델 협회가 :잘못된 이름

class School < ActiveRecord::Base 

    belongs_to :city 
    has_many :sclasses 
    has_many :users, through: :sclasses 

    validates :name, presence: true 
    validates :icon_url, length: { maximum: 100 } 

end 

그리고 이것은 나에게 문제를 만드는 #이보기를 표시 학교의 일부입니다

: 내가 거기에있는 사용자를 검색하기위한 양식이이 부분에서
<%= search_form_for @search, url: school_path(@city, @school) do |f| %> 
    <div class="row input-field"> 
     <div class="text-center"> 
      <%= f.text_field :full_name_cont, placeholder: "Pretraga učenika" %> 
     </div> 
    </div> 
    <div class="row input-field"> 
     <div class="text-center"> 
      <%= f.select :generation_eq, options_from_collection_for_select(@school.users.order("generation DESC").select(:generation).uniq, "generation", "generation", @search.generation_eq), {}, { :class => "selectpicker" } %> 
     </div> 
    </div> 
    <div class="row input-field"> 
     <div class="text-center"> 
      <%= f.submit "Traži", class: "btn btn-default" %> 
     </div> 
    </div> 
<% end %> 

모델의 구조는 다음과 같이 보았을 때

City has_many School has_many Sclasses has_many Users 

그리고이 오류가 얻을 :

City has_many School has_many Users 

는 이제 다음과 같습니다

PG::UndefinedColumn: ERROR: column users.sclass_id does not exist 
LINE 1: ...generation" FROM "users" INNER JOIN "sclasses" ON "users"."s... 
                  ^
HINT: Perhaps you meant to reference the column "users.sclass". 
: SELECT DISTINCT "users"."generation" FROM "users" INNER JOIN "sclasses" ON "users"."sclass_id" = "sclasses"."id" WHERE "sclasses"."school_id" = $1 ORDER BY generation DESC 

가 어떻게 제대로이 작품을 만들기 위해 f.select에서 매개 변수를 변경해야을?

답변

0

문제가 해결되었습니다. 나는 db/schema.rb을 체크했고, sclass_id 대신에 sclass이라고 불리는 정수 컬럼이 있었다. (나는 아마 references 타입으로 이주를 잊어 버렸다).