0

別のフォーム (顧客) にネストされたフォーム (住所) があります。アプリで顧客を作成しています。作成をクリックすると、データベースに顧客が作成されますが、ショーページにルーティングすると、このエラーが発生します。

何よりもまずここにエラーがあります

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

テキストノードがこのエラーを引き起こしている理由がわかりません。助けていただければ幸いです。

4

0 に答える 0