gpt4 book ai didi

ruby-on-rails - 具有设计嵌套属性的未知属性 'user_id'

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:43 24 4
gpt4 key购买 nike

我正在使用 Devise gem 对用户进行身份验证。我有一个用户模型和一个地址模型关系,其中每个用户 has_one :address每个地址 belongs_to :user .当我尝试注册新用户时,页面加载时出现以下错误:unknown attribute: user_id .迹线指向 <% resource.build_address... 行在我看来。

如果我只是从我的 View 中删除该行,页面将会加载,但我的嵌套表单字段都不会显示。

在 Rails 控制台中,我可以创建并保存一个地址,然后将保存的地址用作将保存的新用户的属性。

View 如下:

<% resource.build_address unless resource.address %>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>

<%= f.email_field :email, :autofocus => true, placeholder: "Your email", class: 'input-block-level' %><br>
<%= f.password_field :password, placeholder: "Password", class: 'input-block-level' %><br>
<%= f.password_field :password_confirmation, placeholder: "Confirm password", class: 'input-block-level' %><br>
<%= f.text_field :favorite_cuisine, placeholder: "Favorite cuisine", class: 'input-block-level' %><br>
<%= f.fields_for :address do |address_form| %>
<%= address_form.text_field :street_one, placeholder: "Street", class: 'input-block-level' %><br>
<%= address_form.text_field :street_two, placeholder: "Street #2", class: 'input-block-level' %><br>
<%= address_form.text_field :city, placeholder: "City", class: 'input-block-level' %><br>
<%= address_form.text_field :state, placeholder: "State", class: 'input-block-level' %><br>
<%= address_form.text_field :zip, placeholder: "zip", class: 'input-block-level' %><br>
<% end %>
<% end %>

我的用户模型:

has_one :address, :dependent => :destroy
accepts_nested_attributes_for :address

# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable

# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me,
:favorite_cuisine, :username, :address

validates_presence_of :email
validates_presence_of :address

我的地址模型:

belongs_to :user
attr_accessible :city, :state, :street_one, :street_two, :zip, :user_id

validates_presence_of :city
validates_presence_of :state
validates_presence_of :street_one
validates_presence_of :zip

我哪里出错了?

最佳答案

rails g migration AddUserIdToAddresses

然后编辑文件,

def change
add_column :addresses, :user_id, :integer
end

然后rake db:migrate

关于ruby-on-rails - 具有设计嵌套属性的未知属性 'user_id',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16898662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com