gpt4 book ai didi

ruby-on-rails-3 - 如何为rails-settings gem 制作设置配置页面?

转载 作者:行者123 更新时间:2023-12-03 00:48:51 25 4
gpt4 key购买 nike

我刚刚发现了rails-settings gem,现在我需要创建一个管理页面,让我编辑设置值。我如何制作一个带有编辑 View 的设置 Controller 来更改这些动态应用程序范围的设置?

最佳答案

我没有使用过这个 gem,但看起来它应该相当简单。由于它使用数据库支持的模型,因此您只需像平常一样创建一个 Controller :

rails g controller Settings

从这里您可以定义索引操作来收集所有单独的设置以在 View 中显示:

def index
@settings = Settings.all
end

然后在 View 中您可以设置一个循环来显示它们:

<% @settings.each do |setting| %>
<%= setting.var %> = <%= setting.value %>
<% end %>

就编辑而言...这可能有点棘手,因为默认情况下,rails 希望您一次仅提交一项设置进行编辑。您可以这样做,但除非您使用 ajax 实现编辑,否则它可能会很乏味且不直观。

另一种方法是将更新方法设置为一次接受所有单独的设置,循环并使用新值更新每个设置。它可能看起来像这样:

// The /settings route would need to be setup manually since it is without an id (the default)
<%= form_tag("/settings", :method => "put") do %>
<% @settings.each do |setting| %>
<%= label_tag(setting.var, setting.var) %>
<%= text_field_tag(setting.var, :value => setting.value) %>
<% end %>
<%= submit_tag("Save Changes") %>
<% end %>

这应该输出所有设置(假定它们已分配给 @settings 变量),其中 var 名称作为标签,当前值作为文本字段值。假设路由已设置,当您提交此表单时,接收该表单的操作应该包含 params 变量中的所有新设置。然后你可以在操作中执行类似的操作:

def update
params.each_pair do |setting, value|
eval("Settings.#{setting} = #{value}")
end
redirect_to settings_path, :notice => 'Settings updated' # Redirect to the settings index
end

这可能不是最好的方法,具体取决于您编辑设置的频率以及您拥有的设置数量......但这是一个可能的解决方案。

关于ruby-on-rails-3 - 如何为rails-settings gem 制作设置配置页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6992109/

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