我尝试使用简单的应用程序学习嵌套属性。
class Ticket < ActiveRecord::Base
has_many :avatars
accepts_nested_attributes_for :avatars
end
class Avatar < ActiveRecord::Base
belongs_to :ticket
end
<%= form_for @ticket do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :description %>
<%= f.text_field :description %>
<%= f.fields_for :avatar**s** do |m| %>
<%= m.label :name %>
<%= m.text_field :name %>
<% end %>
<%= f.button :submit, class: "btn btn-primary" %>
<% end %>
使用:头像(复数)这些字段不会显示,而是适用于:
<%= f.fields_for :avatar do |m| %>
我错过了什么?
修改
谢谢大家。
我发现问题:在故障单控制器上
def new
@ticket = Ticket.new
@ticket.avatars.build #before this line is missing
end
现在我不知道如何在视图中显示这个嵌套值
@ticket.comments.name
给我一个未定义的方法&#39; name&#39;在头像控制器上
答案 0 :(得分:0)
嗯,你当时正在创建一个头像,因为你必须使用单数。
如果要迭代多个头像,则必须使用foreach,<% @ticket.avatars.each do %>
。