У меня есть простая связь между двумя моделями. «Листинги» могут иметь много «предложений», а предложения могут иметь только один листинг. Я могу создавать списки просто отлично, но когда я создаю связанное «Предложение», детали из моей формы заявки не сохраняются в базе данных. Сам объект сохраняет и включает в себя идентификатор листинга, связанный с ним, но ничего из формы не происходит.Рельсы не сохраняют информацию об объекте по методу создания
Я наклеил наиболее подходящие кодовые блоки, любые советы будут оценены.
Предложение Контроллер: класс OffersController < ApplicationController
def new
@listing = Listing.find(params[:id])
@offer = @listing.offers.build
end
def create
@listing = Listing.find(params[:id])
@offer = @listing.offers.create!(params[offer_params])
if @offer.save
redirect_to offer_path(:id => @offer.id)
end
end
def show
@offer = Offer.find(params[:id])
end
def index
end
private
def offer_params
params.require(:offer).permit(:offer_price, :offer_terms, :listing_id, :offer_expiration)
end
end
формы, связанную с предложениями
<%= @listing.street_address %> (<%= link_to "Back", listings_path %>)
<%= form_for [@offer, @listing], :url => { :action => :create, :id => @listing.id}, html: {multipart: true} do |f| %>
<div class="field">
<%= f.label :offer_price %><br>
<%= f.text_field :offer_price %>
</div>
<div class="field">
<%= f.label :offer_terms %><br>
<%= f.text_area :offer_terms %>
</div>
<div class="field">
<%= f.label :offer_expiration %><br>
<%= f.text_field :offer_expiration %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
И, наконец, запись в журнале развития, когда я нажимаю отправить на моей форме. Как вы можете видеть, он правильно хранит данные о предложениях (я думаю) в хеше params, но когда он вставляет его в базу данных, все поля предложений не идут.
Started POST "/offers?id=2" for ::1 at 2015-03-11 13:40:01 -0400
Processing by OffersController#create as HTML
Parameters: {"utf8"=>"✓","authenticity_token"=>"NldTPDo/s/Jyo8SB0I6/OWYWeN0Ukf9JYQU5nASUDONcMl OQTauG+HWxsfjZ4yJLrvDxVtbUaX2sBD63BMIQtA==", "offer"=>{"offer_price"=>"988888", "offer_terms"=>"financed", "offer_expiration"=>"Never"}, "commit"=>"Create Offer", "id"=>"2"}
[1m[35mListing Load (0.2ms)[0m SELECT "listings".* FROM "listings" WHERE "listings"."id" = ? LIMIT 1 [["id", 2]]
[1m [36m (0,1 мс) [0m [1mbegin сделка [0m
[1m [35mSQL (0.4ms) [0м INSERT INTO "предложения" ("listing_id", "created_at" , "updated_at") VALUES (?,?,?) [["listing_id", 2], ["created_at", "2015-03-11 17: 40: 01.967717"], ["updated_at", "2015-03 -11 17: 40: 01,967717" ]]
[1m[36m (0.8ms)[0m [1mcommit transaction[0m
[1m[35m (0.1ms)[0m begin transaction
[1m[36m (0.0ms)[0m [1mcommit transaction[0m
Redirected to http://localhost:3000/offers/33
Completed 302 Found in 36ms (ActiveRecord: 2.6ms)
Awesome. Это сработало отлично. Спасибо огромное! –