2013-03-09 3 views
1

왜이 오류는 입찰가에서 _form을 선택하게됩니까?모델이 연결되지 않는다고 생각합니다.

=> undefined method `request_for_proposal' for 
# <ActionView::Helpers::FormBuilder:0x002aaad671c9c8> 

request_for_proposal has_many 입찰 I 제한하거나 공급 업체를 제한 나중에 할 수 있도록 내가 "invited_vendors"을 얻기 위해 RFP를 통해 갈 필요가 입찰에서 request_for_proposal

==================================================== 
Inside views/bids/_form.html.erb 

    <div class="field"> 
    <%= bid.label :vendor_name %> 
    <%= bid.select :vendor_id, bid.request_for_proposal.vendors.collect { |rfpvi| 
     [rfpvi.friendly_name + " : " + rfpvi.rfp_number, rfpvi.id] } %> 
    </div> 

belongs_to
입찰 실제로 입찰을 제출할 수 있습니다.

class Bid < ActiveRecord::Base 

    attr_accessible :cost, :request_for_proposal_id, :vendor_id 

    belongs_to :request_for_proposal 
    belongs_to :vendor 
------------------------------------------------ 

mysql> desc bids; 
+-------------------------+---------------+------+-----+---------+----------------+ 
| Field     | Type   | Null | Key | Default | Extra   | 
+-------------------------+---------------+------+-----+---------+----------------+ 
| id      | int(11)  | NO | PRI | NULL | auto_increment | 
| cost     | decimal(10,0) | YES |  | NULL |    | 
| request_for_proposal_id | int(11)  | YES | MUL | NULL |    | 
| vendor_id    | int(11)  | YES | MUL | NULL |    | 
| contact_id    | int(11)  | YES | MUL | NULL |    | 
| created_at    | datetime  | NO |  | NULL |    | 
| updated_at    | datetime  | NO |  | NULL |    | 
+-------------------------+---------------+------+-----+---------+----------------+ 

================================================ 
class RequestForProposal < ActiveRecord::Base 

    attr_accessible :rfp_number, :name, :description, :title, 
        :contact_id, :business_owner_id 

    has_many :bids 
    has_many :rfp_vendors 
    has_many :vendors, :through => :rfp_vendors 

    has_and_belongs_to_many :business_owners, :class_name => :Contact, 
          :foreign_key => :business_owner_id 
    has_and_belongs_to_many :evaluators,  :class_name => :Contact, 
          :foreign_key => :evaluator_id 
----------------------------------------------- 

mysql> desc request_for_proposals; 
+----------------------------+--------------+------+-----+---------+----------------+ 
| Field      | Type   | Null | Key | Default | Extra   | 
+----------------------------+--------------+------+-----+---------+----------------+ 
| id       | int(11)  | NO | PRI | NULL | auto_increment | 
| rfp_number     | varchar(255) | NO |  | NULL |    | 
| contact_id     | int(11)  | YES |  | NULL |    | 
| vendor_id     | int(11)  | YES |  | NULL |    | 
| name      | varchar(255) | NO |  | NULL |    | 
| description    | varchar(255) | YES |  | NULL |    | 
| title      | varchar(255) | NO |  | NULL |    | 
| bid_id      | int(11)  | YES |  | NULL |    | 
| business_owner_id   | int(11)  | YES |  | NULL |    | 
| evaluator_id    | int(11)  | YES |  | NULL |    | 
| created_at     | datetime  | NO |  | NULL |    | 
| updated_at     | datetime  | NO |  | NULL |    | 
+----------------------------+--------------+------+-----+---------+----------------+ 

================================================ 
class Vendor < ActiveRecord::Base 

    attr_accessible :friendly_name 

    has_many :rfp_vendors 
    has_many :request_for_proposals, :through => :rfp_vendors 
    has_many :bids 
------------------------------------------------ 

mysql> desc vendors; 
+-------------------------+--------------+------+-----+---------+----------------+ 
| Field     | Type   | Null | Key | Default | Extra   | 
+-------------------------+--------------+------+-----+---------+----------------+ 
| id      | int(11)  | NO | PRI | NULL | auto_increment | 
| friendly_name   | varchar(255) | YES |  | NULL |    | 
| created_at    | datetime  | NO |  | NULL |    | 
| updated_at    | datetime  | NO |  | NULL |    | 
+-------------------------+--------------+------+-----+---------+----------------+ 

================================================ 
================================================ 

mysql> desc bids_contacts; 
+------------+---------+------+-----+---------+-------+ 
| Field  | Type | Null | Key | Default | Extra | 
+------------+---------+------+-----+---------+-------+ 
| bid_id  | int(11) | NO |  | NULL |  | 
| contact_id | int(11) | NO |  | NULL |  | 
+------------+---------+------+-----+---------+-------+ 

mysql> desc bids_vendors; 
+-----------+---------+------+-----+---------+-------+ 
| Field  | Type | Null | Key | Default | Extra | 
+-----------+---------+------+-----+---------+-------+ 
| bid_id | int(11) | NO |  | NULL |  | 
| vendor_id | int(11) | NO |  | NULL |  | 
+-----------+---------+------+-----+---------+-------+ 

mysql> desc rfp_vendors; 
+-------------------------+----------+------+-----+---------+----------------+ 
| Field     | Type  | Null | Key | Default | Extra   | 
+-------------------------+----------+------+-----+---------+----------------+ 
| id      | int(11) | NO | PRI | NULL | auto_increment | 
| vendor_id    | int(11) | YES |  | NULL |    | 
| request_for_proposal_id | int(11) | YES |  | NULL |    | 
| created_at    | datetime | NO |  | NULL |    | 
| updated_at    | datetime | NO |  | NULL |    | 
+-------------------------+----------+------+-----+---------+----------------+ 

??????????????????????????????????????????? ?????????

내가 request_for_proposals '볼'이 성가신 수없는 과거를 얻을 후

,

내가 통해 공급 업체에 도달해야하는 것있어 : rfp_venders =>를 통해.

Vendors.friendly_name에 도달하는 데 대해 뉘앙스가 있습니까?

답변

1

표시 한 irb 오류 때문에 ActiveRecord 인스턴스 자체가 아닌 양식 작성기 인스턴스에서 request_for_proposal을 호출하는 것처럼 보입니다.

form_for @my_instance do |f|이있는 경우 f은 양식 작성기 인스턴스이며 @my_instance과 같은 개체가 아닙니다. ActiveRecord 인스턴스로 가려면 @my_instance 또는 f.object을 사용해야합니다.

+0

감사합니다. bloopletech. 난 그냥 그것을 변경 :

<%= bid.label :vendor_name %> <%= bid.select :vendor_id, @bid.request_for_proposal.vendors.collect { |rfpvi| [rfpvi.friendly_name + " : " + rfpvi.rfp_number, rfpvi.id] } %>
그러나 오류가 지금 : 정의되지 않은 메서드'rfp_number '번호 <공급 업체 : 0x002aaae01b18d0> –

+0

EUREKA! 내가 뭘하려고했는지에 대한 나의 오류. 이 말도 안되는 문제가 해결된다는 것은 안심입니다. 나는 그것을 기억할 것이다. ______ 이제 입찰서 양식에서 입찰가에 대해 선택한 공급 업체를 제한 할 수있는 방법을 알아야합니다. ______ 또 다른 도전! :) _____ 감사! –

+0

도움이 되었으면 좋겠습니다. :) – bloopletech