gpt4 book ai didi

ruby-on-rails - 根据数据库中定义的字段生成表单

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:55 25 4
gpt4 key购买 nike

我想根据数据库中定义的字段生成 Rails 表单运行时。

数据库的当前结构

**fields table**
- id
- field_name
- field_value
- field_type (text field, date, dropdown)
- field_values (Basically for list of values to be shown for dropdown field_type)
- field_validation

例如:如果我的数据库字段表存储以下数据

  1 | employee_name | text_field |  | {blank => false, :length => 3..50}
2 | gender | dropdown | male, female | {blank => false}

现在根据上面的数据我想生成如下所示的表单

  <%= simple_form_for(@field, url: eval(url)) do |f|  %>
<%= f.input_text :employee_name %>
<%= f.collection :gender %>
<% end %>

最佳答案

我正在使用 ActiveModel 来解决几乎相同的问题。

 # somewhere in metainfo model
def class_from_meta
klass = Class.new do
include ActiveModel::Model

def self.name
'Person'
end
end

[:id, :email, :age].each do |attr|
klass.instance_eval do
attr_accessor attr
validates_presence_of attr
end
end

klass
end

# in controller
def create
@person = MetaInfo.find(params[:meta_info_id]).class_from_meta.new
respond_with @person
end

使用 class_evalinstance_eval 您可以生成一个类,其行为非常类似于 ActiveRecord

关于ruby-on-rails - 根据数据库中定义的字段生成表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19475397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com