Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用于复杂关联的Rails嵌套表单_Ruby On Rails_Forms_Associations_Form For - Fatal编程技术网

Ruby on rails 用于复杂关联的Rails嵌套表单

Ruby on rails 用于复杂关联的Rails嵌套表单,ruby-on-rails,forms,associations,form-for,Ruby On Rails,Forms,Associations,Form For,问题: =rfv.text\u区域:值在编辑操作中呈现空文本区域(但在db中此字段有值) 无法获取参数中角色\字段\值[]的数组 我的模型和关联: class Participant < ActiveRecord::Base belongs_to :role has_many :role_field_values, dependent: :destroy accepts_nested_attributes_for :role_field_values end class

问题:

  • =rfv.text\u区域:值
    在编辑操作中呈现空文本区域(但在db中此字段有值)
  • 无法获取参数中角色\字段\值[]的数组
我的模型和关联:

class Participant < ActiveRecord::Base
  belongs_to :role
  has_many :role_field_values, dependent: :destroy
  accepts_nested_attributes_for :role_field_values
end

class Role < ActiveRecord::Base
  has_many :role_fields
  has_one :participant
end

class RoleField < ActiveRecord::Base
  belongs_to :role
  has_many :role_field_values
end

class RoleFieldValue < ActiveRecord::Base
  belongs_to :participant
  belongs_to :role_field
end

使用f.fields\u for代替fields\u for

=f.simple\u fields\u for:role\u field\u value for simple\u form gem
=simple_form_for [@project.becomes(Project), @participant] do |f|
  =f.error_notification
  h4 =@participant.profile.fio
  .form-inline
    =f.association :role, remote: true
    =f.input :status
  #role-fields

    =fields_for :role_fields_values do |rfv|
      -@participant.role.role_fields.each do |role_field|
        .form-group
          =rfv.hidden_field :role_field_id, value: role_field.id
          br
          =rfv.label role_field.name
          =rfv.text_area :value, class: 'form-control'

  .form-actions
    = f.button :submit