用户模型 - 使用设计构建。
class User < ActiveRecord::Base
// some stuff
has_one :expert
accepts_nested_attributes_for :expert, :update_only => true
// more stuff
专家模型 - 使用无需设计构建。
class Expert < ActiveRecord::Base
belongs_to :user
用户控制器:
def edit
@user = User.friendly.find(params[:id])
@title = "Edit Profile"
end
专家控制员:
def edit
@expert = Expert.find(params[:id])
@title = "Edit Expert Profile"
end
编辑用户视图表单部分:
<%= form_for(@user) do |f| %>
<% if @user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :Name %><br>
<%= f.text_field :name, :class => "form-control" %>
</div>
<div class="field">
<%= f.label :Email %><br>
<%= f.text_field :email, :class => "form-control" %>
</div>
<div class="field">
<%= f.label :Phone %><br>
<%= f.text_field :phone, :class => "form-control" %>
</div>
<div class="field">
<%= f.label :Password %><br>
<%= f.text_field :password, :class => "form-control" %>
</div>
<div class="field">
<% f.fields_for :expert do |e| %>
<%= e.label :Location %><br />
<%= e.text_field :Location %>
<% end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
应该显示专家模型的位置字段的表单部分不会显示在视图上。此处截图:http://i.imgur.com/JifVuv7.png
无法弄清楚为什么会这样,任何帮助都会受到赞赏!
答案 0 :(得分:0)
根据ERB语法,您需要使用:
<%= %>
执行附带的ruby代码+渲染结果
<% %>
执行随附的ruby代码
您使用<% %>
作为f.fields_for
,这就是未呈现嵌套字段的原因。
更改代码如下:
<%= f.fields_for :expert do |e| %>
<%= e.label :Location %><br />
<%= e.text_field :Location %>
<% end %>