Редактировать ошибку загрузки формы с помощью Formtastic, STI, Polymorphic & ActiveAdmin - PullRequest
0 голосов
/ 11 января 2012

Я новичок в rails и использую комбинацию formtastic, activeadmin, sti и polymorphic ассоциаций для создания формы

Когда II может создать вложенную форму с родительским адресом без проблем, но когда я представляюSTI и попытка построить build_origin_address вместо build_address, то есть, когда я получаю ошибку ниже при загрузке представления редактирования

NameError в Admin / приводит # редактировать Показывается ... / app / views / admin / приводит / _form.эрб, где поднята строка # 3: неинициализированная константа Lead :: OriginAddress

Модели:

class Address < ActiveRecord::Base
  belongs_to :addressable, :polymorphic => true
  belongs_to :lead
  validates :line1, :presence => true, :length =>  {:minimum => 2}
  attr_accessible :line1, :line2, :city, :state, :zip, :country
end

class OriginAddress < Address
end

class DestinationAddress < Address
end

class Lead < ActiveRecord::Base
  has_one  :origin_address, :dependent => :destroy, :as => :addressable
  accepts_nested_attributes_for :origin_address, :allow_destroy => true
end

частичное использование в режиме редактирования:

<%= semantic_form_for [:admin, @lead] do |f| %>
<% @lead.build_origin_address unless @lead.origin_address %>
  <%= f.inputs :name => "Lead Info" do  %>
    <%= f.input :first_name %>
    <%= f.input :last_name %>
  <% end %>

  <%= f.semantic_fields_for :origin_address do |origin| %>
    <%= origin.inputs :name => "Origin Address" do  %>
      <%= origin.input :line1 %>
      ....
      <% end %>
  <% end %>

  <%= f.buttons do %>
    <%= f.commit_button %>
  <% end %>
<% end %>

1 Ответ

0 голосов
/ 11 января 2012

Я думаю, вы должны определить @lead перед формой.

...