【发布时间】:2014-01-23 18:25:28
【问题描述】:
Rails 新手在这里。我被困在 Rails 中的 fields_for 上,我将永远感谢任何人的帮助。
- 在 Events#new 中,为什么会出现 NoMethodError? 错误消息说未定义的方法“名称”
- 在事件中,为什么会出现 NameError? 错误消息显示未定义的局部变量或方法“事件”。
我正在尝试创建和查看一个表单,其中每个事件都有每个朋友的 2 个字段。
_form.html.erb:
<%= form_for(@event) do |f| %>
<div class="field">
Date: <%= f.text_field :date %></br>
Friends: <%= f.fields_for :friends do |friends_fields| %>
<%= friends_fields.text_field :name %>
<% end %>
<% end %>
index.html.erb:
<tbody>
<% @events.each do |event_form| %>
<tr>
<td><%= event_form.date %></td>
<td><%= event_form.friends.each do |friend| %>
<%= friend.name %>
<% end %>
</td>
<td><%= link_to 'Show', event %></td>
<td><%= link_to 'Edit', edit_event_path(event) %></td>
<td><%= link_to 'Destroy', event, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
event.rb:
class Event < ActiveRecord::Base
has_many :friends
accepts_nested_attributes_for :friends, allow_destroy: true
end
朋友.rb:
class Friend < ActiveRecord::Base
belongs_to :event
end
events_controller.rb:
def new
@event = Event.new
2.times { @event.friends.build }
end
【问题讨论】:
标签: ruby-on-rails ruby form-for fields-for