2013-05-08 4 views
0

я следующий код формирует мой passport_visas.rb моделируетActiveAdmin Форма 2 модели (BELONGS_TO и has_many) не работает

ActiveAdmin.register PassportVisa do 

    menu :label => "Visas" 
    form :partial => "form" 

    index :title => "Visas" 
end 

И это мой код для частичной «формы»

<%= semantic_form_for [:admin, @passport_visa] do |f| %> 

    <%= f.inputs "Main information" do %> 
      <%= f.input :country %> 
      <%= f.input :citizenship, :as => :radio, :collection => {"US Citizen" => 0, "Foreign National" => 1} %> 
      <%= f.input :visa_type, :as => :select, :collection => ["Tourist", "Business", "Official"] %> 
      <%= f.input :visa_required, :label => "Is Visa Required?", :as => :radio, :collection => {"Required" => 0, "Not Required" => 1} %> 
      <%= f.input :maximum_stay, :label => "Maximum Stay" %> 
    <% end %> 

    <fieldset class="actions"> 
    <ol> 
     <li class="action input_action" id="passport_visa_add_new_entry"> 
      <input name="new_entry" type="button" value="Add New Entry"> 
     </li> 
     <li class="action input_action" id="passport_visa_remove_entry"> 
      <input name="remove_entry" type="button" value="Remove Entry"> 
     </li> 
    </ol> 
    </fieldset> 

    <!-- Problem --> 
    <%= f.inputs "Entries" do %> 
    <%= f.has_many :visa_entries do |entry| %> 
      <%= entry.input :type_of_entry, :as => :select, :collection => ["Testing"] %> 
     <% end %> 
    <% end %> 

    <%= f.actions %> 

<% end %> 

И я получаю сообщение об ошибке: «неопределенный метод` has_many»для #Formtastic :: FormBuilder: 0x10c234c38"

Я стараюсь весь день, чтобы настроить эту форму, вот код моей модели:

passport_visa.rb

class PassportVisa < ActiveRecord::Base 
    has_many :visa_entries 
    accepts_nested_attributes_for :visa_entries 
end 

visa_entry.rb

class VisaEntry < ActiveRecord::Base 
    belongs_to :passport_visa 
    attr_accessible :type_of_entry, :maximum_validity, :embassy_fees, :service_fees, :processing_time 
end 
+0

Кто-нибудь? Пожалуйста, помогите мне! –

+0

См. Http://stackoverflow.com/questions/10070779/undefined-method-has-many-for-formtastic Звучит похоже на аналогичную проблему. –

ответ

0

Наконец я нашел работу вокруг этого. Итак, вот что я сделал, чтобы заставить его работать:

  1. Сначала я избавился от части _form, потому что по какой-то причине «has_many» не работает внутри.
  2. Я изменил мои 2 модели:

passport_visa.rb

class PassportVisa < ActiveRecord::Base 
    has_many :visa_entries 
    accepts_nested_attributes_for :visa_entries 
    attr_accessible :visa_entries_attributes, :country, :citizenship, :visa_type, :visa_required, :maximum_stay 
    validates_presence_of :country, :citizenship, :visa_type, :visa_required, :maximum_stay 
end 

visa_entry.rb

class VisaEntry < ActiveRecord::Base 
    belongs_to :passport_visa 
    attr_accessible :type_of_entry 
    validates_presence_of :type_of_entry 
end 

И последняя часть, фактическая форма:

form do |f| 

     f.inputs "Entries" do 
      f.has_many :visa_entries do |ff| 
       ff.input :type_of_entry, :as => :select, :collection => ["Testing"] 
      end 
     end 

     f.actions 

    end 

До свидания!

Смежные вопросы