ssc*_*rus 5 ruby-on-rails ruby-on-rails-3 drop-down-menu
我有一个复杂的形式(如Ryan B的复杂形式Railscasts),我有几个级别的数据库表同时被更改.
此下拉框的代码的作用是它向数据库提供正确的整数.但是,尽管进行了多次尝试,但我无法正确反映数据库的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;"} %>
Run Code Online (Sandbox Code Playgroud)
谢谢.
EmF*_*mFi 12
你走在正确的轨道上,但并不完全在那里.
而最终的参数options_for_select应该是所选选项的值.您提供:weighting的值是与您的任何给定选项的值不匹配的符号.
您需要提供实际值.如果您使用实例对象来构建表单,请使用
<%form_for @whatever do |o|%>
...
Run Code Online (Sandbox Code Playgroud)
你可以简单地用作@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;"} %>
Run Code Online (Sandbox Code Playgroud)
否则,有一种方法可以从窗体块变量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 %>
Run Code Online (Sandbox Code Playgroud)
这也可以用于部分.
| 归档时间: |
|
| 查看次数: |
9533 次 |
| 最近记录: |