我有以下型號has_one和rails中的遷移問題?
- 地址
- 車
- 用戶
而且我有以下型號之間的關係。
- 每一輛汽車都有一個地址(一個 - 一個關係)
- 每個用戶都有一個地址(一個 - 一個關係)
地址模型
class Address < ApplicationRecord
belongs_to :car
belongs_to :user
end
汽車模型
class Car < ApplicationRecord
has_one :address
accepts_nested_attributes_for :address
end
用戶模型
class User < ApplicationRecord
has_one :address
accepts_nested_attributes_for :address
end
數據庫表
- 車有一欄ADDRESS_ID爲外鍵
- 用戶已列ADDRESS_ID爲外鍵
遷移 用戶
class CreateUsers < ActiveRecord::Migration[5.0]
def change
create_table :users do |t|
t.string :username
...
t.references :Address, foreign_key: true
end
end
end
汽車遷移
class CreateCars < ActiveRecord::Migration[5.0]
def change
create_table :cars do |t|
t.string :chasis
...
t.references :Address, foreign_key: true
end
end
end
現在,當我嘗試從用戶/ new.html.erb嵌套形式我得到以下錯誤。
user_id是在地址不明屬性。
User_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
@user.build_address
end
...
end
我的嵌套形式是沒有得到呈現。
嵌套形式
<%= form_for @user, html: { class: 'form-horizontal' } do |f|%>
<%= f.fields_for :address do |fact| %>
<div class="field form-group">
<%= f.label :add1, class: 'col-sm-2 control-label' %>
<div class="col-sm-10">
<%= f.text_field :add1, class: 'form-control' %>
</div>
</div>
<div class="field form-group">
<%= f.label :add2, class: 'col-sm-2 control-label' %>
<div class="col-sm-10">
<%= f.text_field :add2, class: 'form-control' %>
</div>
</div>
<% end %>
<div class="field form-group">
<div class="col-sm-offset-2 col-sm-2">
<%= f.submit class: 'form-control btn btn-primary' %>
</div>
</div>
<% end %>
我懷疑沒有在我的移民文件的一些問題。但是數據庫表格是以我想要的方式創建的。
請張貼'CreateAddresses'遷移。 – mudasobwa
我想你在地址遷移中沒有user_id。 –