2013-09-22 15 views
0

我有一個項目模型地方投標

class Item < ActiveRecord::Base 
    belongs_to :user 
    has_many :bids 

    accepts_nested_attributes_for :bids 
end 

,也是一個競價模型

class Bid < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :item 
end 

我試圖把一個項目投標,並有投標屬於一個項目。

這是我的表演項目視圖中我試圖有一個嵌套的表格:

<%= form_for @item do |i| %> 

    <h2>Place a bid</h2> 
    <%= i.fields_for :bid do |bid| %> 
    <%=bid.label :amount %> 
    <%=bid.text_field :amount %> 
    <% end %> 

    <div class="form-actions"> 
    <%= i.button :submit, class: 'btn btn-primary' %> 
    </div> 
<% end %> 

但它不是在數據庫中創建投標。

這是在項目控制器允許PARAMS:

params[:item].permit(:user_id, :title, :bids_attributes => [:amount, :user_id, :item_id]) 

而且我的路線:

item_bids_path GET  /items/:item_id/bids(.:format) bids#index 
POST  /items/:item_id/bids(.:format) bids#create 
new_item_bid_path GET  /items/:item_id/bids/new(.:format) bids#new 
edit_item_bid_path GET  /items/:item_id/bids/:id/edit(.:format)  bids#edit 
item_bid_path GET  /items/:item_id/bids/:id(.:format) bids#show 
PATCH /items/:item_id/bids/:id(.:format) bids#update 
PUT /items/:item_id/bids/:id(.:format) bids#update 
DELETE /items/:item_id/bids/:id(.:format) bids#destroy 

我在想什麼?

EDIT(忘了加上我的架構):

create_table "bids", force: true do |t| 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    t.integer "item_id" 
    t.integer "user_id" 
    end 

回答

0

試着改變你的fields_for到:

<%= i.fields_for :bid, @bid do |b| %> 

你可以在這裏閱讀更多:

Rails API Doc

它還看起來您缺少出價表中的金額列?

希望幫助....

確保在您的項目顯示控制器

def show 
    @bid = Bid.new 
    ... 
end 
+0

良好的漁獲建立出價實例。不幸的是,這仍然不是問題。我在項目顯示視圖中有表單。我需要該表單作爲創建而不是更新。 – Dileet

+0

指向formy manualy然後使用'form_for @item,url:bids_path,method:post' – Almaron

+0

沒有路由匹配{:action =>「index」,:controller =>「bids」,:id =>「11」}缺少必需的鍵:[:item_id] – Dileet