首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Options_for_select -如何选择数据库中的内容?

Options_for_select -如何选择数据库中的内容?
EN

Stack Overflow用户
提问于 2010-10-20 11:02:09
回答 2查看 9.8K关注 0票数 5

我有一个复杂的表单(就像Ryan B的复杂表单Railscast),其中我有几个级别的数据库表同时被更改。

此下拉框的代码的工作原理是将正确的整数传递到数据库。但是,尽管尝试了很多次,我还是不能让它正确地反映数据库的当前值。我如何整理这段代码?

代码语言:javascript
复制
<%= 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;"} %>

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-20 12:11:56

你走上了正确的道路,但并不完全正确。

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

你需要给出实际的值。如果您使用instance对象来构建表单,如

代码语言:javascript
复制
<%form_for @whatever do |o|%>
...

您可以简单地使用@whatever.weighting.to_s,如下所示:

代码语言:javascript
复制
<%= 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中移除,但这会扰乱内部结构,这些内部结构可能会随着升级而改变。

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

重用上面的例子,在表单的每个子实例的部分中使用每个子实例的当前权重。

代码语言:javascript
复制
<% 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 %>

这也可以用在分音中。

票数 14
EN

Stack Overflow用户

发布于 2012-12-18 03:33:30

第二次尝试=)

代码语言:javascript
复制
<%= f.label :priority %>
<%= f.select(:priority, options_for_select({"Stat" => "1", "Urgent" => "2", "Regular" => "3", "Safety" => "4"}, @servicerequest.priority), :prompt => "Choose") %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3974448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档