2015-01-03 3 views
1

Я пытаюсь реализовать вложенное для использования жемчужину reform. У меня есть три модели:Rails 4 с реформой GEM и simple_form

  1. Заказчик (BELONGS_TO: personal_details)
  2. PersonalDetail (belongs_to: название)
  3. Название (has_many: PersonalDetail)

Я пытаюсь создать CustomerForm с помощью с использованием следующего кода:

/app/forms/customer_form.rb 
class CustomerForm < Reform::Form 
property  :national_id 
validates  :national_id, 
      :presence => true 

property :personal do 

property  :first_name 
property  :title 


validates  :first_name, 
       :presence => true 


end 
end 


/app/controllers/customers_controller.rb 
def new 
    @form = CustomerForm.new(Customer.new(personal: Personal.new)) 
end 


/app/views/customers/new.html.haml 
= simple_form_for @form, :url => customers_path do |f| 
    = f.input   :national_id 
    = f.simple_fields_for :personal do |builder| 
    = builder.input   :first_name 
    = builder.association  :title 
    = f.button :submit, "Submit" 

Атрибут title: title не получит никакого inpu t во время подачи формы. Связь между Title и PersonalDetail используется только для заполнения раскрывающегося списка списком Title.name. Если я попробую выше, я получаю сообщение об ошибке, говорящее, что никакой ассоциации: gender существует. Когда я пытаюсь что-то подобное, используя стандартный подход на основе модели, он работает как шарм.

Любые идеи? Я просмотрел документацию несколько раз, но просто не могу понять, где я ошибаюсь.

ответ

0

Я нашел другой способ сделать это. Вместо использования стандартного метода связи simple_form я просто добавил коллекцию в Select Dropdown следующим образом:

.row.padding-12-all 
    = builder.input :title_id, 
        :label_method => :name , 
        :value_method => :id, 
        :collection => Title.all 
Смежные вопросы