我尝试创建一个选择输入,该输入接受特定用户模型并将其显示为字符串,同时将它们保存为整数。通常我会以与下面相同的方式设置可枚举,但作为静态哈希。
在尝试创建新产品时,我一直收到以下错误:"未定义的局部变量或方法`user_business_hash'"
我已尝试移动' user_business_hash'应用程序/产品控制器,应用程序/产品助手的方法,没有运气。
模型
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
表格
<%= form.select :user_id, Product.user_ids.keys, prompt: 'Select', id: :product_user_id %>
答案 0 :(得分:0)
我认为你真正想要的是:
控制器上的
@options = User.where(account_type: 'Business')
你的观点
options_from_collection_for_select(@options, "id", "business_name")