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
?
편집 (내 스키마를 추가하는 것을 잊었다) : 당신은 더 많은 읽을 수 있습니다 여기에
<%= i.fields_for :bid, @bid do |b| %>
:
create_table "bids", force: true do |t|
t.datetime "created_at"
t.datetime "updated_at"
t.integer "item_id"
t.integer "user_id"
end
좋은 캐치에 입찰 인스턴스를 생성해야합니다. 불행히도 그것은 여전히 문제가 아니 었습니다. 나는 항목보기보기에서 양식을가집니다. 양식 대신 업데이트를 작성해야합니다. – Dileet
양식을 수동으로 지정하고 'form_for @item, url : bids_path, method : post'를 사용하십시오. – Almaron
경로가 일치하지 않습니다 {: action => "index", : controller => "bids", : id => "11"} 필수 키가 누락되었습니다 : [: item_id] – Dileet