Rails 4与改革GEM和simple_form

时间:2015-01-03 22:29:03

标签: ruby-on-rails simple-form reform

我正在尝试使用reform gem来实现嵌套。我有三种模式:

  1. 客户(belongs_to:personal_details)
  2. PersonalDetail(belongs_to:title)
  3. 标题(has_many:PersonalDetail)
  4. 我正在尝试使用以下代码使用reform gem创建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和PersonalDetail之间的关系仅用于填充带有Title.name列表的下拉列表。如果我尝试上述操作,我会收到一条错误消息,指出没有任何关联:性别存在。当我使用标准的基于模型的方法尝试类似的东西时,它就像一个魅力。

    有什么想法吗?我已经阅读了几次文档,但根本无法看到我出错的地方。

1 个答案:

答案 0 :(得分:0)

我找到了另一种方法来做到这一点。我没有使用simple_form的标准关联方法,而是简单地向Select Dropdown添加了一个集合,如下所示:

.row.padding-12-all
  = builder.input :title_id, 
                  :label_method => :name , 
                  :value_method => :id,
                  :collection => Title.all
相关问题