1

入札内の _form の選択でこのエラーが発生するのはなぜですか?

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

request_for_proposal has_many の入札数の
入札の属している 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>  

入札では、RFP を調べて「invited_vendors」を取得する必要があります。これにより、実際に入札できるベンダーを後で制限または制限できます。

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 を「見る」ことができないという厄介な問題を乗り越えた後、

:through => :rfp_venders 経由でベンダーに到達する必要があります。

Vendors.friendly_name に連絡するために心配するニュアンスはありますか?

4

1 に答える 1

1

あなたが示したirbエラーから、request_for_proposalActiveRecordインスタンス自体ではなく、フォームビルダーインスタンスを呼び出しているようです。

がある場合form_for @my_instance do |f|、ブロック内でfはフォーム ビルダー インスタンスであり、 と同じオブジェクトではありません@my_instance。ActiveRecord インスタンスにアクセスするには、@my_instanceまたはを使用する必要があります。f.object

于 2013-03-09T00:45:27.763 に答える