【问题标题】:Field gets radio button's item id instead of its value字段获取单选按钮的项目 ID 而不是其值
【发布时间】:2019-06-06 01:35:10
【问题描述】:

我有sn-p:

<%= f.input :purpose, as: :radio_buttons, collection: category.subcategories, 
             wrapper: :vertical_collection_inline %>

category.subcategories 的哪些行值水平我想要的方式

问题是,当我选择任一选项时,它会分配该选项的 ID,而不是其值。

我应该如何重构代码?

【问题讨论】:

  • 这不是一件好事吗?存储 ID 而不是 value ?如果没有,只需在subcategories 上添加.map 即可获取值
  • ID 已经存在于数据库中。在这里,我想将值“Rent”分配为另一个表的字段“Purpose”的值。
  • 改用f.radio_button 试试

标签: ruby-on-rails ruby bootstrap-4 simple-form ruby-on-rails-5.2


【解决方案1】:

正如 cmets 中所警告的那样,使用 ID 具有优势,但是您尝试做的事情应该适用于:

category.subcategories.collect(:&values)

values 是包含“租金”等字段的名称。

使用collection_radio_buttons 更准确的方法是:

f.collection_radio_buttons(:purpose, category.subcategories, :value, :value)

同样,“值”是字段名称。

【讨论】:

  • 谢谢。但仍然无法正常工作。 Subcategory 只有 1 个字段 name。在我的例子中,category.subcategories 包含 3 条记录,其值为 Rent、Sell 和 Buy。
  • 具体来说,我试过这个&lt;%= f.collection_radio_buttons(:purpose, category.subcategories.collect, :name) %&gt; 并得到错误:参数数量错误(给定3,预期4..6)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 2017-02-21
  • 1970-01-01
  • 2018-11-30
  • 2011-10-30
  • 2019-03-21
  • 1970-01-01
相关资源
最近更新 更多