我开始在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 %>
请帮我实现动态生成的表单字段。