加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 21:06:39 所属栏目:百科 来源:网络整理
导读:我有一个复杂的形式(如Ryan B的复杂形式Railscasts),我有几个级别的数据库表同时被更改. 此下拉框的代码的作用是它向数据库提供正确的整数.但是,尽管进行了多次尝试,但我无法正确反映数据库的CURRENT值.我该如何理清这段代码? %= o.select :weighting,optio
我有一个复杂的形式(如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;"} %>

谢谢.

解决方法

你走在正确的轨道上,但并不完全在那里.

而options_for_select的最后一个参数应该是所选选项的值.您提供的值:加权是与您给定的任何选项的值不匹配的符号.

您需要提供实际值.如果您使用实例对象来构建表单,请使用

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

你可以简单地使用@ whatever.weighting.to_s,如:

<%= o.select :weighting,@whatever.weighting.to_s),:style=>"float:left;"} %>

否则,有一种方法可以从窗体块变量o中获取对象.但这与内部情况有关,可能会随着升级而改变.

编辑:如果您正在使用字段和多个部分,则可以使用对象访问器从表单构建器块变量中获取特定对象.

重用上面这样的例子来使用表单中该实例的每个子实例的当前权重.

<% form_for @parent do |p| %>
  ...
  <% p.fields_for :children do |c| %>
  ...
  <%= c.select :weighting,options_for_select([
      ["Correct",c.object.weighting.to_s),:style=>"float:left;"} %>
  ...
  <% end %>
<% end %>

这也可以用于部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读