gpt4 book ai didi

ruby-on-rails - 从具有简单形式的散列动态创建输入

转载 作者:行者123 更新时间:2023-11-29 12:11:45 26 4
gpt4 key购买 nike

我有一个 Configuration 模型,它将 settings 存储在 JSONB 列中。

# Stores site wide configuration settings
# This is used in conjunction with PaperTrail to make each change traceable
class Configuration < ActiveRecord::Base
has_paper_trail
validates_uniqueness_of :name
after_initialize :default_values if :new_record?

private
def default_values
self.settings = {
site_title: 'Portfolio Site'
}
end
end

模型设置了某些默认属性,例如 site_title。我想使用设置哈希在我的表单中动态创建输入。我试过:

= simple_form_for(@configuration) do |f|
= f.input :name

= simple_fields_for :settings do
- @configuration.settings.each do |k,v|
= f.input k

= f.submit

这给出了 undefined method 'site_title' 因为它不是模型属性。我可以在指定键值绑定(bind)时使用 simple_forms input 方法吗?

最佳答案

看起来您不能将 simple_form 用于非属性输入。这将起作用:

= simple_form_for(@configuration) do |f|
= f.input :name

- @configuration.settings.each do |k,v|
= text_field_tag "configurations[settings][#{k}]", v

= f.submit

您可能会扩展默认设置的值,以包含您希望通过 array 呈现的输入类型。

关于ruby-on-rails - 从具有简单形式的散列动态创建输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30407722/

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