2014-04-04 2 views
0

나는 두 테이블 emprequisition두 테이블의 데이터를 레일로 가져 옵니까?

emp.rb

class Emp < ActiveRecord::Base 

has_many :requisitions 


devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable,:confirmable,:lockable 


    attr_accessor :email 

    attr_accessible :password,:password_confirmation,:remember_me, :email , :username 
    string_regex = /\A[a-z]+\z/i 
    validates :username, 
    :format => { :with => string_regex ,:message=> "must be string"}, 
     :uniqueness => { 
:case_sensitive => false 
} 
end 

Requisition

class Requisition < ActiveRecord::Base 
belongs_to :emp 

attr_accessible :name , :unit , :quantity ,:from ,:particular ,:total , :cost 

validates :name , :unit , :quantity ,:from ,:particular ,:total , :cost , presence: true 

validates :particular, :presence => true, 
      :length => { :within => 6..60 } 

    validates :quantity, numericality: { only_integer: true }, 
      :length => {:maximum => 4} 

    validates :quantity, numericality: { only_integer: true }, 
      :length => {:maximum => 4} 

end 

내가 할 일은해야하는지 편집 EMP의 요청의 수를 계산하려면이? 당신이 당신의 Requisition 모델

belongs_to :emp 

이 있어야합니다 그래서 내 로그에서

irb(main):002:0> @emp.requisitions.count 
(1.0ms) SELECT COUNT(*) FROM "requisitions" WHERE "requisitions"."emp_id" =$1 [[nil, 2]] 
PG::UndefinedColumn: ERROR: column requisitions.emp_id does not exist 
LINE 1: SELECT COUNT(*) FROM "requisitions" WHERE "requisitions"."e...: SELECT COUNT(*) FROM "requisitions" WHERE "requisitions"."emp_id" = $1 
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column requisitions.emp_id does not exist 
LINE 1: SELECT COUNT(*) FROM "requisitions" WHERE "requisitions"."e... 
              ^
: SELECT COUNT(*) FROM "requisitions" WHERE "requisitions"."emp_id" = $1from F:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:811:in `prepare 

답변

1

우선, belongs_to 협회 이름은 단수해야합니다.

또한 마이그레이션이 emp_idrequisitions에 테이블을 추가 생성해야합니다 :

bundle exec rails g migration add_emp_id_to_requisitions emp:references 

을하고 실행 :

이제
bundle exec rake db:migrate 

, 당신은 Emp 인스턴스를 보유하고 emp 변수가 주어진, 당신이 믿을 수있는 emprequisition by :

emp.requisitions.count 
+0

로그를 추가했습니다 .. –

+0

@SNEHPANDYA 마이그레이션을 잊어 버렸습니다. 나는 내 대답을 넓혔다. –

+0

완벽한 답변 .. –

관련 문제