【发布时间】:2012-07-23 22:51:23
【问题描述】:
我在模型中有一个定义了哈希的类。
{:"manager" => 1, :"staff" => 2}.freeze
在我的部分表单中。
<li class="field">
<%= f.label :position_type %><br />
<%= f.select :position_type, @person.position_types, {:include_blank => true} %>
</li>
所以,当我按下 show.html.erb 中的 submit 按钮时,我只能看到所选值的值,但看不到我想要的键。
问:如何调整它以使其显示key 而不是values。我知道这与select 标签而不是hash 有很大关系。
PS:
我已经使用了
array,它正在做我想做的事。hash.invert确实在 show.html.erb 中显示keys但在 new/edit.html.erb 中没有显示,并且这种方式对尝试填写的用户没有太大帮助表单无法记住键 => 值以作为输出到达键。
我只是好奇 Rails 中的 select 是如何获取 HTML name 和 value attirb 的。我假设由于 hash 已经为每个关联的 key 提供了 value,因此当提交表单时,rails 会隐式地将 key's value 作为 HTML value 属性。
【问题讨论】:
标签: ruby-on-rails forms select