gpt4 book ai didi

ruby-on-rails - Options_for_select - 如何选择数据库中的内容?

转载 作者:行者123 更新时间:2023-12-04 16:56:18 25 4
gpt4 key购买 nike

我有一个复杂的表单(如 Ryan B 的 Complex Form Railscasts),其中同时更改了几个级别的数据库表。

这个下拉框的代码的作用是将正确的整数传递给数据库。但是,尽管进行了多次尝试,我还是无法让它正确反射(reflect)数据库的 CURRENT 值。我该如何整理这段代码?

<%= o.select :weighting, options_for_select([
["Correct", "4", {:class=>"bold"}],
["Good", "3"],
["Average", "2"],
["Poor", "1"],
["Incorrect", "0", {:class=>"bold"}] ], :weighting), {},
html_options = {:class => "listBox", :style=>"float:left;"} %>

谢谢。

最佳答案

你在正确的 rails 上,但还没有完全到位。

而最后一个论点是 options_for_select应该是所选选项的值。您提供的值(value) :weighting是一个与任何给定选项的值都不匹配的符号。

您将需要给出实际值。如果您使用实例对象来构建表单

<%form_for @whatever do |o|%>
...

您可以简单地使用 @whatever.weighting.to_s如:
<%= o.select :weighting, options_for_select([
["Correct", "4", {:class=>"bold"}],
["Good", "3"],
["Average", "2"],
["Poor", "1"],
["Incorrect", "0", {:class=>"bold"}] ], @whatever.weighting.to_s), {},
html_options = {:class => "listBox", :style=>"float:left;"} %>

否则,有一种方法可以将对象从表单块变量 o 中取出。但这会扰乱内部结构,而内部结构可能会随着升级而改变。

编辑:在您使用字段和多个部分的情况下,您可以使用对象访问器从表单构建器块变量中获取特定对象。

重用上面的示例,以使用表单的该实例部分中每个子实例的当前权重。
<% form_for @parent do |p| %>
...
<% p.fields_for :children do |c| %>
...
<%= c.select :weighting, options_for_select([
["Correct", "4", {:class=>"bold"}],
["Good", "3"],
["Average", "2"],
["Poor", "1"],
["Incorrect", "0", {:class=>"bold"}] ], c.object.weighting.to_s), {},
html_options = {:class => "listBox", :style=>"float:left;"} %>
...
<% end %>
<% end %>

这也可以用于部分。

关于ruby-on-rails - Options_for_select - 如何选择数据库中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3974448/

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