Rails上的动态表单字段

时间:2017-11-21 20:21:07

标签: ruby-on-rails ruby forms dynamic

我开始在Ruby on Rails上编程,我需要一些帮助。

我有一些模特:

class Device < ApplicationRecord
  has_and_belongs_to_many :categories
  has_many :parsets
  has_many :parameters, -> { select('parameters.*, parsets.*') }, through: :parsets
  accepts_nested_attributes_for :parameters
end

class Category < ApplicationRecord
  has_and_belongs_to_many :devices, dependent: :destroy
  has_and_belongs_to_many :parameters
  validates :name, presence: true
end

class Parameter < ApplicationRecord
  has_and_belongs_to_many :categories, dependent: :destroy
  has_many :parsets
  has_many :devices, -> { select('devices.*, parsets.*') }, through: :parsets
end

class Parset < ApplicationRecord
  belongs_to :device
  belongs_to :parameter
end

类别可能包含一些参数(&#39;参数&#39;表格包含列&#39;名称&#39;以及&#39; value_type&#39;)。每个设备都有一个解析器(&#39;解析器&#39;表有列&quot; device_id&#39;,&#39; parameter_id&#39;&#39;值&#39;表示参数值)。 // Parset - &#34;参数设置&#34;。

我想根据所选类别为设备参数动态创建form_fields。

现在我有一段不起作用的代码(它仅用于测试,逻辑将在以后放在控制器中):

<%= form_for @device do |f| %>
  # ... some form fields here ...

  <% @allparams = [] %>

  <% @device.categories.each do |cat| %>
    <% cat.parameters.each do |par| %>
      <% @allparams.push par %>
    <% end %>
  <% end %>

  <% @allparams.uniq.each do |par| %>
    <%= f.send(par.value_type.to_sym, par.name) %><br />
  <% end %>

<% end %>

请帮我实现动态生成的表单字段。

0 个答案:

没有答案