我正在尝试使用连接表council_history保存父模型ID及其子属性,由于某种原因,它似乎没有在连接表中保存父模型ID但是当我尝试做某事时保存子属性ID类似于多对多关联一切正常,父对象被保存,我不确定它的关联是否错误,已经与多种组合摔跤,任何帮助都会受到赞赏。
Started PUT "/properties/34/build/council" for 127.0.0.1 at 2013-08-21 00:44:37 +0100
Processing by Properties::BuildController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"+nfsCrRvTUrgYrdHix0v2QGaDJj25j4X1sh8oHVpkgs=", "property"=> {"council_history_attributes"=>{"property_id"=>"34", "council_id"=>"1"}}, "commit"=>"Create Council history", "property_id"=>"34", "id"=>"council"}
Started GET "/properties/34/build/confirmed" for 127.0.0.1 at 2013-08-21 00:44:37 +0100
Processing by Properties::BuildController#show as HTML
Parameters: {"property_id"=>"34", "id"=>"confirmed"}
Property Load (0.2ms) SELECT "properties".* FROM "properties" WHERE "properties"."id" = ? LIMIT 1 [["id", "34"]]
CouncilHistory Load (0.3ms) SELECT "council_histories".* FROM "council_histories" WHERE "council_histories"."property_id" = 34 LIMIT 1
(0.1ms) begin transaction
**(0.5ms) UPDATE "council_histories" SET "property_id" = NULL, "updated_at" = '2013-08-20 23:44:37.220619' WHERE "council_histories"."id" = 18**
(1.5ms) commit transaction
Tenant Load (0.3ms) SELECT "tenants".* FROM "tenants" WHERE "tenants"."property_id" = 34
Rendered properties/build/confirmed.html.erb within layouts/application (2.1ms)
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = 3 LIMIT 1
(0.4ms) SELECT COUNT(*) FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = 3 AND (((roles.name = 'admin') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL)))
Property.rb
class Property < ActiveRecord::Base
attr_accessible :name, :council_history_attributes, :council,
:property_id, :council_id, :status, :council_history_id
belongs_to :user
has_one :council_history
accepts_nested_attributes_for :council_history
has_one :council, through: :council_history, :foreign_key => :council_id
accepts_nested_attributes_for :council
Council.rb
class Council < ActiveRecord::Base
attr_accessible :CouncilEmail, :name, :CouncilTel, :council_histories_attributes
has_many :council_histories
has_many :properties, :through => :council_histories, :foreign_key => :property_id
end
Council_history.rb - 加入表
class CouncilHistory < ActiveRecord::Base
attr_accessible :council_id, :property_id, :vacant
belongs_to :council
belongs_to :property
end
嵌套控制器
class Properties::BuildController < ApplicationController
include Wicked::Wizard
steps :council, :confirmed
def show
@property = Property.find(params[:property_id])
@property.build_council_history do |council_history|
@council = council_history.build_council
end
render_wizard
end
查看表单
<%= simple_form_for @property, url: wizard_path, :method => 'put' do |f| %>
<%= f.simple_fields_for :council_history do |builder| %>
<%= builder.input :property_id, as: :hidden, input_html: { value: @property.id } %>
<%= builder.input :council_id, :collection => Council.all %>
<%= builder.submit %>
<% end %>
<% end %>
答案 0 :(得分:0)
如果您将对未来提出其他问题,请务必避免在问题中使用authenticity_token ......