Ruby on rails Rails 4多表单(用户和地址)

Ruby on rails Rails 4多表单(用户和地址),ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我在为用户和地址模型创建多个表单时遇到问题。当我加载页面时,我看不到地址字段 我的源代码如下 型号/地址 class Address < ActiveRecord::Base has_one :user end 类地址

我在为用户和地址模型创建多个表单时遇到问题。当我加载页面时,我看不到地址字段

我的源代码如下

型号/地址

class Address < ActiveRecord::Base
  has_one :user
end
类地址
模型/用户

class User < ActiveRecord::Base
  belongs_to :address
  accepts_nested_attributes_for :address
end
class用户
控制器/用户\u控制器

class UsersController < ApplicationController
  before_filter :require_user, :only => [:show, :edit, :update]

def new
  @user = User.new
  @user.build_address
end

private
def user_params
  params.require(:user).permit(
    :first_name, 
    :last_name, 
    :email, 
    :password, 
    :password_confirmation,
    addresses_attributes: [:id, :city]
  )
end
end
class UsersController[:显示,:编辑,:更新]
def新
@user=user.new
@user.build\u地址
终止
私有的
def用户参数
参数require(:user).permit(
:名字,
:姓,
:电邮,
:密码,
:密码\u确认,
地址\属性:[:id,:city]
)
终止
终止
views/users/new.html.erb

<%= form_for @user do |form| %>
  ...
  <% form.fields_for :address do |builder| %>
    <p>
      <%= builder.label :city %><br />
      <%= builder.text_field :city %>
    </p>
  <% end %>
  <%= form.submit "Register" %>
<% end %>

...



谢谢。

您在呼叫的
字段的ERB标签中排除了
=
,犯了一个小错误。应该是

<%= form.fields_for :address do |builder| %>

如果没有
=
,您实际上不会呈现表单