我有一个会议模型:
class Meeting < ActiveRecord::Base
has_one :location, :class_name => "MeetingLocation", :dependent => :destroy
accepts_nested_attributes_for :location
Run Code Online (Sandbox Code Playgroud)
然后我有一个MeetingLocation模型:
class MeetingLocation < ActiveRecord::Base
belongs_to :meeting
Run Code Online (Sandbox Code Playgroud)
我的新会议表格:
<%= form_for @meeting do |f| %>
<%= f.label :location %>
<%= fields_for :location do |l| %>
Name <%= l.text_field :name %>
Street <%= l.text_field :street %>
City <%= l.text_field :city, :class => "span2" %>
State <%= l.select :state, us_states, :class => "span1" %>
Zipcode <%= l.text_field :zip, :class => "span1" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
当我查看新会议表单时,位置字段为空!我只看到位置标签,但没有其他位置字段.我一直在寻找过去3个小时的解释,发现很多类似的问题,但没有运气.
谢谢.
cde*_*ers 20
未显示位置字段的原因是,当您创建新会议时@meeting = Meeting.new,此会议还没有关联的MeetingLocation.如果你打电话给@ meeting.location,你会得到零.因此,表单不显示该位置的字段.
要解决此问题,您应@meeting.build_location在创建新会议后致电.这会将新会议与空白位置相关联.
编辑:尝试fields_for改为f.fields_for
| 归档时间: |
|
| 查看次数: |
6013 次 |
| 最近记录: |