我有一个以另一种形式(客户)嵌套的表单(地址)。我在我的应用程序中创建了一个客户,当我点击创建时,它会在数据库中创建客户,但是当它路由到显示页面时,我收到此错误。
首先是错误
NoMethodError in Admin/customers#show
Showing /usr/local/rvm/gems/ruby-1.9.3-p392/bundler/gems/active_admin-fa7e4de2d5fa/app/views/active_admin/resource/show.html.arb where line #1 raised:
undefined method `address' for #<Customer:0x007ffb5619f420>
Extracted source (around line #1):
1: insert_tag renderer_for(:show)
Rails.root: /Users/danielhatcher/rails/printonrails
Application Trace | Framework Trace | Full Trace
app/admin/customers.rb:29:in `block (2 levels) in <top (required)>'
Request
Parameters:
{"id"=>"11"}
这是我的控制器
ActiveAdmin.register Customer do
# Menu item
menu :label => "Customers", :parent => "Administration"
filter :name, label: "by Name"
filter :company, label: "by Company"
filter :email, label: "by Email"
filter :phone, label: "by Phone Number"
index do
column :name
column :company
column :email
column :phone
end
form :partial => "form"
show :title => :name do
panel "Customer Details" do
attributes_table_for resource do
row :name
row :company
row :email
row :phone
end
end
text_node(render :partial => "admin/addresses/form", :locals => { :address => resource.address })
end
end
这是我的表格
<%=
form.has_many :addresses do |address|
address.inputs "Address" do
address.inputs :class => "" do
address.input :street
address.input :city
address.input :state
address.input :zip
end
end
end
%>
客户模式
class Customer < ActiveRecord::Base
attr_accessible :name, :email, :phone, :addresses_attributes, :company
has_many :addresses
accepts_nested_attributes_for :addresses, :allow_destroy => true
end
地址模型
class Address < ActiveRecord::Base
attr_accessible :street, :city, :state, :zip, :customer_id
belongs_to :customer
end
我不确定为什么文本节点会触发此错误,我们将不胜感激。