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| %>
如果没有=
,您实际上不会呈现表单