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

ruby-on-rails-3 – 如何从rails 3中的哈希创建下拉列表

发布时间:2020-12-17 01:28:56 所属栏目:百科 来源:网络整理
导读:在rails 3中,如何从哈希创建Dropdown 我的User类中有以下代码 class User ... other codes key :gender,Integer # i use mongo db class self def genders() genders = { '1' = 'Male','2' = 'Female','3' = 'Secret' } end endend 在用户表单中,我正在尝试
在rails 3中,如何从哈希创建Dropdown

我的User类中有以下代码

class User
  ...   other codes
  key :gender,Integer    # i use mongo db

  class << self
    def genders()
      genders = {
        '1' => 'Male','2' => 'Female','3' => 'Secret'
      }
    end
  end

end

在用户表单中,我正在尝试创建性别下拉列表

<%= f.collection_select nil,:gender,User.genders,:key,:value %>

但它抱怨

undefined method `merge' for :value:Symbol

那么创建下拉列表的正确方法是什么?

谢谢

解决方法

这应该工作:

<%= f.collection_select :gender,:first,:last %>

编辑:说明:

collection_select将在您给出的对象(此处为User.genders)和每个对象上的两个方法(第一个和最后一个)上调用each.它大致相当于这样的东西:

User.genders.each do |object|
  output << "<option value=#{object.first.inspect}>#{h object.last}</option>"
end

当你调用each on a Hash时,它会产生一个Array的两个值(键和值).可以使用第一种和最后一种方法检索这些值.

(编辑:李大同)

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

    推荐文章
      热点阅读