首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Rails 5上设置动态枚举?

如何在Rails 5上设置动态枚举?
EN

Stack Overflow用户
提问于 2017-07-06 23:26:09
回答 1查看 27关注 0票数 0

我正在尝试创建一个select输入,它接受特定的用户模型,并将它们显示为字符串,同时将它们保存为整数。通常,我会将可枚举设置为与下面相同的方式,但设置为静态散列。

在尝试创建新产品时,我一直收到以下错误:“未定义的局部变量或方法`user_business_hash'”

我尝试过将'user_business_hash‘方法移动到应用程序/产品控制器、应用程序/产品助手,而没有成功。

模型

代码语言:javascript
运行
复制
enum user_id: user_business_hash

validates :user_id, inclusion: user_ids.keys

def user_business_hash
# output: {User.business_name => User.id }
# ex: {"Business Name A"=>2, "Business Name B"=>1, "Business Name C"=>5}
array = User.where(account_type: 'Business').map{|x| [x.business_name, x.id] }

hash = array.inject({}) do |memo, (key, value)|
  memo[key] = value
  memo
end

return hash
end

表单

代码语言:javascript
运行
复制
<%= form.select :user_id, Product.user_ids.keys, prompt: 'Select', id: :product_user_id %>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-06 23:39:40

我认为你真正想要的是:

在你的控制器上

代码语言:javascript
运行
复制
@options = User.where(account_type: 'Business')

对你的看法

代码语言:javascript
运行
复制
options_from_collection_for_select(@options, "id", "business_name")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44960319

复制
相关文章

相似问题

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